Dalam dunia administrator database yang sempurna, semuanya akan sama. Semua server akan identik dan menjalankan beban kerja yang sama. Mereka lebih mudah untuk dikelola. Tapi, bukan itu masalahnya. Saat ini, administrator Sistem harus mengelola lingkungan yang berbeda. Ini sangat jelas dalam kebutuhan untuk melakukan kueri SQL dari mesin Linux. Dalam postingan ini, Anda akan mempelajari cara terhubung ke SQL Server dari Linux!
Bukan pembaca? Tonton tutorial video terkait ini! Tidak melihat videonya? Pastikan pemblokir iklan Anda dinonaktifkan.Salah satu cara untuk terhubung ke SQL Server dari Linux adalah dengan menggunakan modul Python. Namun sebelum Anda sampai sejauh itu, pertama-tama mari kita bahas lingkungan tempat saya bekerja.
Pada artikel ini, saya akan mendemonstrasikan tugas ini menggunakan Ubuntu 16.04 dan saya akan menghubungkan ke SQL Server 2012 R2. Tapi, teknik yang sama harus berlaku untuk rasa Linux lainnya dan versi SQL Server juga. Administrator basis data bersukacita!
Prasyarat
Untuk memulai, Anda perlu menginstal beberapa prasyarat. Pertama, karena Anda akan terhubung ke instance SQL Server dari Python, Anda memerlukan modul Python. Modul Python umum untuk terhubung ke SQL disebut PyODBC. Modul ini memungkinkan Anda untuk menanyakan database SQL melalui ODBC melalui driver SQL Server ODBC untuk Linux. Untuk menginstal versi terbaru, gunakan pip (pengelola paket Python).
> sudo pip install pyodbc
Jika ini tidak berhasil, Anda mungkin belum menginstal pip. Untuk menginstal pip:
> sudo easy_install pip
Selanjutnya, Anda perlu membuat skrip Python. Saya akan memanggil yang ini sql_server.py . Untuk membuat skrip Python, pertama buat file kosong.
> touch sql_server.py
Kemudian, menggunakan editor pilihan Anda, tambahkan baris di bawah ini. Shebang diikuti oleh path ke biner Python memberi tahu penerjemah bahwa ini adalah skrip Python. import
pernyataan kemudian memungkinkan Anda untuk memanggil metode perpustakaan di dalam modul pyodbc. Simpan skrip ini.
!/usr/bin/python
import pyodbc
Setelah skrip Python dibuat, jalankan skrip:
> python sql_server.py
Jika ini berjalan tanpa kesalahan, modul pyodbc telah berhasil diinstal.
Selanjutnya, tambahkan kode untuk menjalankan kueri pengujian. Untuk melakukannya, buat string ODBC.
Untuk mempelajari lebih lanjut tentang membuat string ODBC, inilah sumber yang bagus.
String ODBC pilih-pilih tentang apa yang disertakan. Butuh beberapa waktu untuk mengetahui cara membuat ini berfungsi, tetapi inilah tampilan saya. Di bawah ini saya meneruskan string ODBC sebagai argumen ke connect()
metode yang disertakan dengan pyodbc modul.
conn = pyodbc.connect('DRIVER={FreeTDS};SERVER=server.domain.local;PORT=1433;UID=DOMAIN\user;PWD=mypassword;DATABASE=mydatabasename;UseNTLMv2=yes;TDS_Version=8.0;Trusted_Domain=domain.local;')
Sebagian besar string ODBC terbukti, tetapi satu fakta penting adalah garis miring terbalik ganda untuk UID . Selalu pastikan bahwa Anda telah lolos dari garis miring terbalik dalam string ODBC. Selain itu, beberapa opsi yang saya gunakan bersifat opsional.
Anda juga dapat menggunakan nama host untuk SERVER
seperti yang saya lakukan di atas atau Anda dapat menggunakan alamat IP SQL Server.
Jangan ragu untuk menambahkan atau menghapusnya sesuai keinginan Anda agar sesuai dengan SQL Server Anda.
Selanjutnya, Anda perlu membuat objek kursor yang memungkinkan Anda untuk meneruskan pernyataan T-SQL. Ini dilakukan dengan cursor()
metode.
cursor = conn.cursor()
Sekarang Anda memiliki objek dengan execute()
metode yang dapat digunakan untuk meneruskan pernyataan T-SQL apa pun yang kami inginkan seperti yang ditunjukkan di bawah ini. Ini membuat rows
variabel yang berisi kumpulan data yang dihasilkan.
cursor.execute("SELECT * FROM <tablename>")
rows = cursor.fetchall()
Anda sekarang sampai pada titik di mana Anda harus memutuskan apa yang harus dilakukan dengan dataset. Anda dapat mengirim hasilnya ke file CSV, memasukkan hasilnya ke database lain, atau menulis konten ke konsol.
Di bawah ini, saya akan mencetak hasilnya ke konsol jika set data sudah terisi.
if rows:
print(rows)
Anda dapat melihat bahwa jika dataset dicetak ke konsol, hasilnya tidak terlalu bagus. Pada titik ini, terserah Anda untuk memutuskan bagaimana memformat atau mengurai data dari database. Bagian yang sulit sudah berakhir!
Anda sekarang akan mendapatkan skrip yang terlihat seperti ini:
!/usr/bin/python
import pyodbc
conn = pyodbc.connect('DRIVER={FreeTDS};SERVER=server.domain.local;PORT=1433;UID=DOMAIN\user;PWD=mypassword;DATABASE=mydatabasename;UseNTLMv2=yes;TDS_Version=8.0;Trusted_Domain=domain.local;')
cursor.execute("SELECT * FROM <tablename>")
rows = cursor.fetchall()
if rows:
print(rows)
Ringkasan
Dalam entri blog ini, Anda mempelajari cara menggunakan pyodbc Modul Python di Linux untuk terhubung ke sumber data SQL Server. Bagian tersulit bagi saya adalah mencari tahu string ODBC, tetapi setelah Anda memahaminya, Anda akan lancar.
Setelah Anda terhubung dari Linux, mengapa tidak melihat apakah Anda dapat meningkatkan kinerja menggunakan penghitung kinerja?