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 Actian Produkten haben, können Sie diese gerne in unseren Community-Foren stellen.

actian avatar logo

Über Actian Corporation

Actian versetzt Unternehmen in die Lage, Daten in großem Umfang sicher zu verwalten und zu steuern. Die Data-Intelligence-Lösungen von Actian helfen beim Optimieren komplexer Datenumgebungen und einer beschleunigten Bereitstellung von KI-fähigen Daten. Actian-Lösungen sind flexibel, lassen sich nahtlos integrieren und arbeiten zuverlässig in On-Premises-, Cloud- und Hybrid-Umgebungen. Erfahren Sie mehr über Actian, die Datenabteilung von HCLSoftware, unter actian.com.