Pada artikel ini, kita akan melihat cara Memasukkan Bingkai Data Pandas Secara Massal Menggunakan SQLAlchemy dan juga pendekatan yang dioptimalkan untuk itu karena melakukannya secara langsung dengan metode Pandas sangat lambat
Membuat koneksi dan database menggunakan SQLAlchemy
Jadi pertama-tama kita akan membuat mesin untuk koneksi dengan database dan selanjutnya kita dapat menggunakan perintah to_sql() untuk mendorong data dengan batasannya. kami telah menggunakan vs-code untuk memasukkan bingkai data menggunakan SQLAlchemy, Anda dapat menggunakan editor lain juga setelah menginstal perpustakaan
Membuat koneksi dengan database menggunakan mesin SQLAlchemy
Database Dibuat dari python di meja kerja MySQL
Membuat bingkai Data dan memasukkannya ke database menggunakan fungsi to_sql()
Memasukkan bingkai data ke dalam Database (MySQL)
Tabel dimasukkan ke dalam database
Catatan. "Gunakan perintah sql di bawah ini untuk melihat hasil sql di atas"
Data massal Sisipkan Bingkai Data Panda Menggunakan SQLAlchemy
Kita dapat melakukan tugas ini dengan menggunakan metode "multi" yang melakukan penyisipan batch dengan menyisipkan banyak catatan sekaligus dalam satu pernyataan INSERT. Tetapi efektivitas (waktu) untuk metode ini sangat buruk bahkan dibandingkan dengan metode standar.
Jadi untuk mengatasi masalah ini kami memiliki metode lain "callable" dengan tanda tangan (pd_table, conn, keys, data_iter) yang lebih cepat daripada metode "multi". Itu dapat dengan mudah diperhatikan pada gambar di bawah ini
Pendekatan yang dioptimalkan untuk memasukkan data massal ke dalam basis data menggunakan SQLAlchemy
implementasi kode
Piton
from sqlalchemyimport event
import pandas as pd
import sqlalchemy
import pymysql
sqlalchemy0
from sqlalchemy_import sqlalchemy4
sqlalchemy0
sqlalchemy6sqlalchemy7 sqlalchemy8sqlalchemy9 import0 import1
import2import3 import0 import5 import0import1
import2import9 import0 event1 import0 event3 import0
import2import5 import0 event8 import0 import0 import0 import2 import1
import2import0 import6 import0 import8import9
pandas as pd_0
pandas as pd_1
sqlalchemy0
pandas as pd3sqlalchemy7 pandas as pd5
sqlalchemy0
pandas as pd7 sqlalchemy7 pandas as pd9
import0import1
import0import3import4import5import6import7import6import9sqlalchemy____________________________________________________________________________
Ada lebih dari satu cara untuk mengimpor file CSV ke SQL Server menggunakan Python. Dalam panduan ini, Anda akan melihat teknik sederhana untuk mengimpor data menggunakan 2 pustaka Python berikut
- Pandas – digunakan untuk mengimpor file CSV ke Python dan membuat DataFrame
- Pyodbc – digunakan untuk menghubungkan Python ke SQL Server
Langkah-langkah untuk Mengimpor file CSV ke SQL Server menggunakan Python
Langkah 1. Siapkan File CSV
Untuk memulai, siapkan file CSV yang ingin Anda impor ke SQL Server
Misalnya, anggaplah file CSV disiapkan, di mana
- Nama file CSV adalah 'produk'
- File CSV disimpan di bawah jalur berikut. C. \Users\Ron\Desktop\Test\products. csv
Selain itu, file CSV berisi data berikut
product_idproduct_nameprice1Laptop12002Printer2003Tablet3504Keyboard805Monitor400Langkah 2. Impor File CSV ke DataFrame
Anda dapat menggunakan pustaka Pandas untuk mengimpor file CSV ke dalam DataFrame
Berikut adalah kode untuk mengimpor file CSV untuk contoh kami (perhatikan bahwa Anda harus mengubah jalur untuk mencerminkan lokasi penyimpanan file CSV di komputer Anda)
import pandas as pd data = pd.read_csv (r'C:\Users\Ron\Desktop\Test\products.csv') df = pd.DataFrame(data) print(df)Beginilah tampilan DataFrame di Python
product_id product_name price 0 1 Laptop 1200 1 2 Printer 200 2 3 Tablet 350 3 4 Keyboard 80 4 5 Monitor 400_Langkah 3. Hubungkan Python ke SQL Server
Untuk menghubungkan Python ke server SQL, Anda memerlukan
- Nama server. Untuk tujuan demonstrasi, anggap saja nama servernya adalah. RON\SQLEXPRESS
- Nama Basis Data. Nama database untuk contoh kita adalah. test_database
Berikut adalah kode untuk menghubungkan Python ke SQL untuk contoh kita
import pyodbc conn = pyodbc.connect('Driver={SQL Server};' 'Server=RON\SQLEXPRESS;' 'Database=test_database;' 'Trusted_Connection=yes;') cursor = conn.cursor()Anda mungkin ingin memeriksa panduan berikut yang menjelaskan langkah-langkah lengkap untuk menghubungkan Python ke SQL Server menggunakan pyodbc
Langkah 4. Buat Tabel di SQL Server menggunakan Python
Selanjutnya, tambahkan sintaks untuk membuat tabel di SQL Server. Tabel ini akan digunakan untuk menyimpan data yang diimpor dari file CSV
Sebagai contoh kami, Anda dapat menambahkan sintaks berikut untuk membuat tabel 'produk'
cursor.execute(''' CREATE TABLE products ( product_id int primary key, product_name nvarchar(50), price int ) ''')Perhatikan setiap kali Anda menjalankan kode untuk membuat tabel. Anda hanya boleh menggunakan potongan kode itu satu kali. Jika tidak, Anda akan mendapatkan kesalahan di bawah ini.
ProgrammingError. ('42S01′, “[42S01] [Microsoft][ODBC SQL Server Driver][SQL Server]Sudah ada objek bernama 'produk' di database. (2714) (SQLExecDirectW)”)
Langkah 5. Masukkan Data DataFrame ke dalam Tabel
Berikut adalah sintaks untuk memasukkan data DataFrame (dari langkah-2) ke dalam tabel produk
for row in df.itertuples(): cursor.execute(''' INSERT INTO products (product_id, product_name, price) VALUES (?,?,?) ''', row.product_id, row.product_name, row.price ) conn.commit() _Dan inilah seluruh kode untuk mengimpor file CSV ke SQL Server menggunakan Python
import pandas as pd import pyodbc # Import CSV data = pd.read_csv (r'C:\Users\Ron\Desktop\Test\products.csv') df = pd.DataFrame(data) # Connect to SQL Server conn = pyodbc.connect('Driver={SQL Server};' 'Server=RON\SQLEXPRESS;' 'Database=test_database;' 'Trusted_Connection=yes;') cursor = conn.cursor() # Create Table cursor.execute(''' CREATE TABLE products ( product_id int primary key, product_name nvarchar(50), price int ) ''') # Insert DataFrame to Table for row in df.itertuples(): cursor.execute(''' INSERT INTO products (product_id, product_name, price) VALUES (?,?,?) ''', row.product_id, row.product_name, row.price ) conn.commit()Jalankan kode dengan Python (setelah melakukan penyesuaian pada jalur tempat file CSV Anda disimpan, serta membuat perubahan pada info koneksi database Anda)