ODBC-Zugriff auf SQL Server von Linux mit Python

Einführung

Ich frage mich, ob es eine andere Verwendung als maschinelles Lernen gibt. .. .. Es ist eine Nische. .. Ich werde erklären, wie eine Verbindung zu Microsoft SQL Server von Linux über ODBC hergestellt wird. Lassen Sie uns den Test in Python ausführen.

Installieren Sie den DataDirect SQL Server ODBC-Treiber in einer Linux-Umgebung

  1. Laden Sie die Testversion von SQL Server ODBC-Treiber für Linux von der Website herunter. ..

  2. Führen Sie nach dem Herunterladen den folgenden Linux-Befehl aus, um das Paket in einen neuen Ordner zu verschieben.

mkdir datadirect

mv PROGRESS_DATADIRECT_ODBC_SQLSERVER_LINUX_XX.tar.Z datadirect/

cd datadirect/
  1. Extrahieren Sie das Paket mit dem folgenden Befehl.
tar -xvf PROGRESS_DATADIRECT_ODBC_SQLSERVER_LINUX_64.tar.Z
  1. Führen Sie den folgenden Befehl im Terminal aus, um den KSH-Interpreter zu installieren.

Für Debian

sudo apt-get install ksh

Für CentOS / RHEL

sudo yum install ksh
  1. Führen Sie das folgende Skript im Terminal aus, um die Installation auszuführen.
./unixmi.ksh
  1. Wenn die Eingabeaufforderung angezeigt wird, geben Sie Enter oder "Y" ein, um das Betriebssystem zu überprüfen.

image.png

  1. Ich stimme der Lizenzvereinbarung mit "Ja" zu. image.png

  2. Geben Sie an der Eingabeaufforderung Ihren Namen und Firmennamen ein. Geben Sie EVAL als Seriennummer und Schlüssel ein. image.png

  3. Auf einem Bildschirm werden Sie aufgefordert, alle enthaltenen Treiber zu installieren oder einen zu installierenden Treiber auszuwählen. Wählen Sie hier Option 2 aus.

image.png

  1. Eine Liste der zu installierenden Treiber wird angezeigt. Wählen Sie Option 11'SQL Server Wire Protocol '.

image.png

  1. Überprüfen Sie den Pfad. Wenn Sie dies nicht bestätigen können, geben Sie den Pfad ein.

image.png

  1. Trinken Sie Tee und warten Sie, bis die Installation abgeschlossen ist. Wenn Sie einen anderen Linux-Treiber installieren möchten, können Sie verschiedene Dinge mit "Y" ausprobieren. Verwenden Sie diesmal jedoch "N", um das Installationsprogramm zu beenden.

image.png

SQL Server ODBC-Treibereinstellungen

  1. Installationspfad /Progress/DataDirect/Connect_64_for_ODBC_71 (Das Ende unterscheidet sich je nach Version) Gehen Sie zu und führen Sie den folgenden Befehl im Terminal aus. Fügen Sie die Umgebungsvariablen ODBCINI, ODBCINST, LD_LIBRARY_PATH hinzu.
sudo chmod +x odbc.sh

./odbc.sh
  1. Überprüfen Sie mit dem folgenden Befehl, ob die Variablen ODBCINI, ODBCINST und LD_LIBRARY_PATH normal installiert sind. Sie sollten den Pfad zur Datei odbc.ini sehen.
echo $ODBCINI

./odbc.sh
  1. Wenn die Umgebungsvariablen nicht korrekt hinzugefügt wurden, fügen Sie diese Werte zu ~ / .bashrc hinzu.
export LD_LIBRARY_PATH=/install_path/Progress/DataDirect/Connect64_for_ODBC_71/lib

export ODBCINI=/ install_path/Progress/DataDirect/Connect64_for_ODBC_71/odbc.ini

export ODBCINST=/ install_path/Progress/DataDirect/Connect64_for_ODBC_71/odbcinst.ini
  1. Aktualisieren Sie die Terminaleinstellungen mit dem folgenden Befehl.
source ~/.bashrc
  1. Pfad /install_path/Progress/DataDirect/Connect64_for_ODBC_71/odbc.ini Öffnen Sie die Datei odbc.ini in und konfigurieren Sie die SQL Server-Verbindungsdetails wie im folgenden Beispiel odbc.ini gezeigt.
[ODBC Data Sources]

SQL Server Legacy Wire Protocol=DataDirect 7.1 SQL Server Legacy Wire Protocol

[ODBC]
IANAAppCodePage=4

InstallDir=/home/progress/Progress/DataDirect/Connect64_for_ODBC_71

Trace=0

TraceFile=odbctrace.out

TraceDll=/home/progress/Progress/DataDirect/Connect64_for_ODBC_71/lib/ddtrc27.so

[SQL Server Wire Protocol]
Driver=/home/progress/Progress/DataDirect/Connect64_for_ODBC_71/lib/ddsqls27.so

Description=DataDirect 7.1 SQL Server Wire Protocol

AlternateServers=

AlwaysReportTriggerResults=0

AnsiNPW=1

ApplicationName=

ApplicationUsingThreads=1

AuthenticationMethod=1

BulkBinaryThreshold=32

BulkCharacterThreshold=-1

BulkLoadBatchSize=1024

BulkLoadFieldDelimiter=

BulkLoadOptions=2

BulkLoadRecordDelimiter=

ConnectionReset=0

ConnectionRetryCount=0

ConnectionRetryDelay=3

Database=<database_name>

EnableBulkLoad=0

EnableQuotedIdentifiers=0

EncryptionMethod=0

FailoverGranularity=0

FailoverMode=0

FailoverPreconnect=0

FetchTSWTZasTimestamp=0

FetchTWFSasTime=1

GSSClient=native

HostName=<server_name>

HostNameInCertificate=

InitializationString=

Language=

LoadBalanceTimeout=0

LoadBalancing=0

LoginTimeout=15

LogonID=<logon id> (optional)

MaxPoolSize=100

MinPoolSize=0

PacketSize=-1

Password=<password> (optional)

Pooling=0

PortNumber=1433

QueryTimeout=0

ReportCodePageConversionErrors=0

SnapshotSerializable=0

TrustStore=

TrustStorePassword=

ValidateServerCertificate=1

WorkStationID=

XMLDescribeType=-10

  1. Speichern Sie die Datei odbc.ini und beenden Sie sie.

SQL Server ODBC-Verbindungstest

  1. Testen wir den ODBC-Treiber. Dieses Mal machen wir es mit einem einfachen Python-Skript. Führen Sie den folgenden Befehl aus, um das pyodbc-Paket zu installieren.

pip install pyodbc

Wenn Sie eine Ausnahme erhalten, dass die Bibliothek <sql.h> nicht gefunden werden kann, müssen Sie möglicherweise das unixODBC-Paket installieren. Sie können es installieren, indem Sie den folgenden Befehl ausführen.

Debain:

sudo apt-get install unixodbc unixodbc-dev

CentOS/Redhat:

sudo apt-get install unixODBC unixODBC-devel
  1. Speichern Sie das folgende Skript in einer Python-Datei und führen Sie es aus. Überprüfen Sie, ob Sie erfolgreich eine Verbindung zu SQL Server herstellen können.
import pyodbc

 

##connecting to your database through ODBC

cnxn = pyodbc.connect('DSN=SQL Server Wire Protocol;UID=sa;PWD=pass', autocommit=True)

cursor = cnxn.cursor()
  1. Nach erfolgreicher Verbindung mit SQL Server können Sie der obigen Datei das folgende Skript hinzufügen, um die Tabelle in der Datenbank auszugeben.
##Print TableNames

for row in cursor.tables():

                if row.table_type == "TABLE":

                                print (row.table_name)

                                print (row)
  1. Sie können auch das folgende Skript hinzufügen und das Skript ausführen. Beachten Sie, dass es eine Northwind-Datenbank gibt, die Sie abfragen möchten.
##Executing a simple query and printing the records

cursor.execute("SELECT EmployeeID, LastName, FirstName, Address, City, Region from Northwind.dbo.Employees")

for row in cursor.fetchall():

    print (row)

In diesem Artikel wird der SQL Server-Authentifizierungsmodus verwendet. Die ODBC- und JDBC-Treiber von DataDirect SQL Server unterstützen jedoch auch die Windows-Authentifizierung und Kerberos. Dies ist also ein anderes Mal.

Recommended Posts

ODBC-Zugriff auf SQL Server von Linux mit Python
ODBC-Verbindung zu FileMaker 11 Server Advanced mit Python 3
Datenintegration von der Python-App unter Linux zu Amazon Redshift mit ODBC
Yum-Befehl zum Zugriff auf MySQL mit Python 3 unter Linux
Abrufen von Daten aus der Datenbank über ODBC mit Python (Access)
So greifen Sie über Python auf Wikipedia zu
Greifen Sie mit python27 / pyodbc auf dem Container auf den SQL Server des Hosts zu
[In-Database Python Analysis Tutorial mit SQL Server 2017]
Push-Benachrichtigung vom Python-Server an Android
SQL zu SQL
Ich habe einen Server mit Python-Socket und SSL erstellt und versucht, über den Browser darauf zuzugreifen
Zugriff auf RDS von Lambda (Python)
[Amazon Linux] Wechsel von der Python 2-Serie zur Python 3-Serie
Datenintegration von der Python-App unter Windows zu Amazon Redshift mit ODBC
Senden Sie eine Nachricht von Slack an einen Python-Server
Wie man gut mit Linux-Befehlen aus Python umgeht
Sichern Sie mit rsync von QNAP auf Linux
Greifen Sie über Python auf Bitcoind zu
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
Lokaler Server mit Python
[In-Database Python Analysis-Lernprogramm mit SQL Server 2017] Schritt 2: Importieren Sie Daten mit PowerShell in SQL Server
So "cache-fähiger" Zugriff auf FPGA-Speicher von Linux
So kratzen Sie Bilddaten von Flickr mit Python
Vom Kauf eines Computers bis zur Ausführung eines Programms auf Python
[Linux] [Python] [Pandas] Laden Sie die Microsoft Access-Datenbank (* .mdb) mit Pandas
Stellen Sie mit Python eine Verbindung zu BigQuery her
Post von Python nach Slack
Flirte von PHP nach Python
Post to Slack mit Python 3
Anaconda aktualisiert von 4.2.0 auf 4.3.0 (python3.5 aktualisiert auf python3.6)
Greifen Sie über Python auf Oracle DB zu
Wechseln Sie von Python2.7 zu Python3.6 (centos7)
Schalten Sie Python mit Alternativen auf 2.7 um
Schreiben Sie mit Python in csv
Einfacher HTTP-Server mit Python
Greifen Sie mit Python auf Google Drive zu
Bildschirm und geteilter Bildschirm mit Python- und SSH-Anmeldung am Remote-Server
[Linux] Kopieren Sie Daten mit einem Shell-Skript von Linux nach Windows
Versuchen Sie, die Datentabelle von Azure SQL Server mit pyodbc zu extrahieren
Einführung in Python für VBA-Benutzer - Aufrufen von Python aus Excel mit xlwings-
[Python] Exportieren Sie regelmäßig mit Lambda aus CloudWatch-Protokollen nach S3
Rufen Sie Matlab von Python zur Optimierung auf
[Scp] Kopieren Sie Dateien lokal von einem Linux-Server mit ssh scp von Tera Term
Python: So verwenden Sie Async mit
Rufen Sie C von Python mit DragonFFI auf
Indexierter Zugriff auf das Python-Numpy-Array
Link, um mit Python zu beginnen
Gerätetreiber zum "Cache-fähigen" Zugriff auf FPGA-Speicher von Linux
Verwenden von Rstan aus Python mit PypeR
[Python] Mit Python in eine CSV-Datei schreiben
Installieren Sie Python von der Quelle mit Ansible
Schön dich mit Python zu treffen
Post von Python auf Facebook Timeline
[Lambda] [Python] Von Lambda auf Twitter posten!
Betreiben Sie DynamoDB von Python aus wie SQL.
Versuchen Sie, mit Python3 eine Zeichenfolge aus einem Bild zu extrahieren
Einführung in die Datenanalyse mit Python P17-P26 [ch02 1.usa.gov Daten von bit.ly]
Konvertieren Sie die Liste mit Python in DataFrame