Datenmanagement

Zugriff auf eine PSQL-Zen-Datenbank mit Python und ODBC

Actian Germany GmbH

Januar 4, 2018

Die Verbindung von ServiceNow mit den Daten anderer Anwendungen muss nicht schwierig sein

Als Programmierer der alten Schule von vor ein paar Jahrzehnten beschloss ich, herauszufinden, wie schwer es sein würde, mit meinen neu erworbenen Python auf eine Zen-Datenbank (früher bekannt als PSQL) zuzugreifen. Für den Fall, dass Sie nicht damit vertraut sind, Zen ist Actians eingebettet Zero-Admin, Nano-Footprint Hybrid NoSQL und SQL-Datenbank-Software, und Python ist eine High-Level-Programmiersprache, die häufig in der data science und Internet-Anwendungen (neben vielen anderen Dingen) verwendet wird.

Da ich bereits über einige Kenntnisse von Actian Zen verfügte, musste ich lediglich einen EdX-Einführungskurs in die Python absolvieren und anschließend Python 3.6 zusammen mit der entsprechenden pyodbc-Bibliothek herunterladen und installieren.

Das unten gezeigte einfache Programm zur Verbindung von Zen mit Python besteht aus etwa 30 Zeilen Code! Es stellt eine Verbindung zur Datenbank "demodata" her, weist einen Cursor zu und führt eine Reihe von SQL-Anweisungen für DROP TABLE, CREATE TABLE, INSERT und SELECT aus. Wie einfach ist das? Ich habe es sogar geschafft, eine Eingabeaufforderung zu erstellen und einen Parameter in der INSERT-Anweisung für den Nutzer Wert zu verwenden. Hier ist der Code:

import os
import sys
import pyodbc

def main():
   conn_str = 'Driver={Pervasive ODBC Interface};server=localhost;DBQ=demodata'
   db = pyodbc.connect(conn_str)
   c = db.cursor()
   c.execute("DROP TABLE IF EXISTS test_table")
   c.execute("CREATE TABLE test_table (id identity, name char(32), create_date date)")

   isql_dml = """INSERT INTO test_table VALUES (0, ?, CURRENT_DATE())"""
   iinserting = True
   while iinserting:
      new_name = input('Enter name to insert, Q to quit: ' )
      if new_name.lower() == 'q':
         iinserting = False
      else:
         if new_name == '':
            print(' Please enter a non-empty string.')
         else:
            print(' Inserting:', new_name)
            c.execute(isql_dml, (new_name,))
            c.commit()

   c.execute("SELECT COUNT(*) FROM test_table")
   row = c.fetchone()
   if row:
      print('You inserted', row, 'name(s)')
   return 0

if __name__ == "__main__":
   sys.exit(main())

Es ist leicht zu erkennen, wie einfach und dennoch leistungsstark dieser Zugang ist und wie leicht er für Test- und Kundensupport-Szenarien verwendet werden kann.

Laden Sie noch heute die Actian Zen Testversion herunter und schreiben Sie Ihre erste Python ODBC Anwendung! 30-Tage-Testversionen sind hier erhältlich. Wenn Sie Fragen zu Zen oder anderen ActianProdukten haben, können Sie diese gerne in unseren Community-Foren stellen.

actian avatar logo

Über Actian Corporation

Actian macht Daten einfach. Unsere Datenplattform vereinfacht die Verbindung, verwalten und Analyse von Daten in Cloud, Hybrid- und On-Premises . Mit jahrzehntelanger Erfahrung in den Bereichen Datenmanagement und Analytik liefert Actian High-Performance Lösungen, die Unternehmen in die Lage versetzen, data driven Entscheidungen zu treffen. Actian wird von führenden Analysten anerkannt und hat Branchenauszeichnungen für Leistung und Innovation erhalten. Unsere Teams präsentieren bewährte Anwendungsfälle auf Konferenzen (z. B. Strata Data) und tragen zu Open-Source-Projekten bei. Im Actian-Blog behandeln wir Themen, die von Dateneingang bis hin zu KI-gesteuerter Analytik reichen. Lernen Sie das Führungsteam kennen https://www.actian.com/company/leadership-team/