Máy chủ sql chèn số lượng lớn python
Tôi có tập lệnh Python nhập dữ liệu Excel, định dạng một vài cột/hàng và lưu kết quả dưới dạng CSV. Sau đó, CSV này được chuyển đến một thư mục máy chủ (thông qua tập lệnh) để tôi có thể chạy truy vấn SQL INSERT hàng loạt để điền nội dung của nó vào Bảng SQL. Tuy nhiên, tập lệnh của tôi sẽ thêm ngày hiện tại vào tên tệp khi lưu CSV. Làm cách nào tôi có thể chỉnh sửa phần CHÈN hàng loạt trong mã của mình để đảm bảo nó ghi lại tên tệp này mỗi khi tập lệnh được chạy, để tôi không phải chỉnh sửa phần SQL theo cách thủ công? Show
Đây là phần có liên quan trong tập lệnh của tôi (phần SQL có *** cho biết nơi tôi muốn tên mới được tự động ghi lại (e. g. testdata_15092020. csv)) - stackoverflow. comghi bàn. 0 câu trả lời được chấp nhận Còn cái này thì sao?
Thêm câu hỏi với thẻ tương tựCó nhiều cách để nhập tệp CSV vào SQL Server bằng Python. Trong hướng dẫn này, bạn sẽ thấy một kỹ thuật đơn giản để nhập dữ liệu của mình bằng 2 thư viện Python sau
Các bước để nhập tệp CSV vào SQL Server bằng PythonBước 1. Chuẩn bị tệp CSVĐể bắt đầu, hãy chuẩn bị tệp CSV mà bạn muốn nhập vào SQL Server Ví dụ: giả sử rằng một tệp CSV đã được chuẩn bị, trong đó
Ngoài ra, tệp CSV chứa dữ liệu sau product_idproduct_nameprice1Laptop12002Printer2003Tablet3504Keyboard805Monitor400Bước 2. Nhập tệp CSV vào DataFrameBạn có thể sử dụng thư viện Pandas để nhập tệp CSV vào DataFrame Đây là mã để nhập tệp CSV cho ví dụ của chúng tôi (lưu ý rằng bạn sẽ cần thay đổi đường dẫn để phản ánh vị trí lưu trữ tệp CSV trên máy tính của bạn) import pandas as pd data = pd.read_csv (r'C:\Users\Ron\Desktop\Test\products.csv') df = pd.DataFrame(data) print(df) Đây là cách DataFrame trông như thế nào trong Python
Bước 3. Kết nối Python với máy chủ SQLĐể kết nối Python với máy chủ SQL, bạn sẽ cần
Đây là mã để kết nối Python với SQL cho ví dụ của chúng tôi import pyodbc conn = pyodbc.connect('Driver={SQL Server};' 'Server=RON\SQLEXPRESS;' 'Database=test_database;' 'Trusted_Connection=yes;') cursor = conn.cursor() Bạn có thể muốn kiểm tra hướng dẫn sau giải thích các bước đầy đủ để kết nối Python với SQL Server bằng pyodbc Bước 4. Tạo bảng trong SQL Server bằng PythonTiếp theo, thêm cú pháp tạo bảng trong SQL Server. Bảng này sẽ được sử dụng để lưu trữ dữ liệu đã nhập từ tệp CSV Ví dụ của chúng tôi, bạn có thể thêm cú pháp sau để tạo bảng 'sản phẩm' cursor.execute(''' CREATE TABLE products ( product_id int primary key, product_name nvarchar(50), price int ) ''') Lưu ý rằng bất cứ khi nào bạn chạy mã để tạo bảng. Bạn chỉ nên sử dụng đoạn mã đó một lần. Nếu không, bạn sẽ gặp lỗi bên dưới. Lỗi lập trình. ('42S01′, “[42S01] [Microsoft][ODBC SQL Server Driver][SQL Server] Đã có một đối tượng có tên là 'sản phẩm' trong cơ sở dữ liệu. (2714) (SQLExecDirectW)”) Bước 5. Chèn dữ liệu DataFrame vào bảngĐây là cú pháp để chèn dữ liệu DataFrame (từ bước 2) vào bảng sản phẩm 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() Và đây là toàn bộ mã để nhập tệp CSV vào SQL Server bằng 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() Chạy mã bằng Python (sau khi thực hiện điều chỉnh đường dẫn nơi tệp CSV của bạn được lưu trữ, cũng như thực hiện thay đổi đối với thông tin kết nối cơ sở dữ liệu của bạn) Chèn số lượng lớn hoạt động như thế nào trong SQL Server?BALK INSERT tải dữ liệu từ tệp dữ liệu vào bảng . Chức năng này tương tự như chức năng được cung cấp bởi tùy chọn in của lệnh bcp; . Để biết mô tả về cú pháp BULK INSERT, hãy xem BULK INSERT (Transact-SQL).
Làm cách nào tôi có thể làm cho truy vấn chèn SQL Server nhanh hơn?[SQL Server] Cách tăng tốc quá trình chèn . KHAI BÁO @ID SỐ (10), @NAME SỐ (10), @INFO VARCHAR(30) BẮT ĐẦU EXEC ( 'KHAI BÁO Cur FOR ' + @cursor) MỞ Cur TÌM TIẾP THEO TỪ Curiosity VÀO @ID, @NAME, @INFO KHI @@FETCH_STATUS = 0 Chèn số lượng lớn là gì?Chèn hàng loạt là quy trình hoặc phương pháp được cung cấp bởi hệ thống quản lý cơ sở dữ liệu để tải nhiều hàng dữ liệu vào bảng cơ sở dữ liệu . Chèn số lượng lớn có thể đề cập đến. Câu lệnh Transact-SQL BULK INSERT. Câu lệnh PL/SQL BULK COLLECT và FORALL. MySQL LOAD DATA INFILE tuyên bố.
Tại sao chèn số lượng lớn nhanh hơn chèn?Trong trường hợp CHÈN SỐ LƯỢNG LỚN, chỉ phân bổ phạm vi được ghi lại thay vì dữ liệu thực tế được chèn . Điều này sẽ cung cấp hiệu suất tốt hơn nhiều so với INSERT. Ưu điểm thực tế là giảm lượng dữ liệu được ghi vào nhật ký giao dịch. |