Driver Python SQL Server Mới của Microsoft Gặp Thách Thức Ban Đầu với Fabric và Các Vấn Đề Hiệu Suất

Nhóm Cộng đồng BigGo
Driver Python SQL Server Mới của Microsoft Gặp Thách Thức Ban Đầu với Fabric và Các Vấn Đề Hiệu Suất

Microsoft đã phát hành driver Python mới cho SQL Server với lời hứa đơn giản hóa kết nối cơ sở dữ liệu mà không cần các trình quản lý driver bên ngoài. Gói mssql-python hiện đang trong giai đoạn xem trước công khai, nhằm giải quyết các vấn đề kết nối lâu dài đã gây khó khăn cho các nhà phát triển Python khi làm việc với hệ thống cơ sở dữ liệu của Microsoft . Tuy nhiên, những người dùng đầu tiên đã phát hiện ra những hạn chế đáng kể có thể ảnh hưởng đến việc áp dụng trong môi trường sản xuất.

Vấn Đề Tương Thích Xuất Hiện với Microsoft Fabric

Một trong những vấn đề tức thì nhất được người dùng phát hiện liên quan đến tương thích với Microsoft Fabric , nền tảng phân tích dữ liệu hàng đầu của Microsoft . Driver mới không thể hoạt động với datawarehouse engine của Fabric vì nó dựa vào các thao tác DECLARE CURSOR, mà Fabric không hỗ trợ. Điều này tạo ra tình huống khó xử khi driver Python mới nhất của Microsoft không thể kết nối với một trong những dịch vụ dữ liệu hàng đầu của chính họ, buộc các nhà phát triển phải tiếp tục sử dụng các giải pháp dựa trên ODBC cũ.

Các Thao Tác Dữ Liệu Lớn Vẫn Là Thách Thức Chính

Cộng đồng Python từ lâu đã gặp khó khăn trong việc tải lên hiệu quả các bộ dữ liệu lớn lên SQL Server , và driver mới dường như không giải quyết được vấn đề cơ bản này. Các nhà phát triển làm việc với hàng triệu dòng trong Pandas hoặc Polars DataFrames vẫn phải đối mặt với những nút thắt hiệu suất tương tự đã tồn tại trong nhiều năm. Mặc dù driver hỗ trợ các thao tác cơ sở dữ liệu cơ bản, nhưng nó thiếu hỗ trợ tích hợp cho các thao tác bulk copy program (BCP), vốn rất cần thiết cho việc truyền dữ liệu hiệu suất cao.

Các thành viên cộng đồng đã phát triển nhiều giải pháp thay thế khác nhau, bao gồm chuyển đổi dữ liệu thành chuỗi có độ dài cố định và sử dụng tải lên đa luồng vào các bảng tạm thời. Một số đạt được tốc độ khoảng một triệu dòng mỗi phút, nhưng những giải pháp này đòi hỏi mã tùy chỉnh phức tạp thay vì các lệnh gọi thư viện đơn giản.

Phụ Thuộc Nền Tảng Vẫn Tạo Ra Khó Khăn

Mặc dù Microsoft có mục tiêu đơn giản hóa kết nối, driver mới vẫn yêu cầu các phụ thuộc đặc thù nền tảng có thể làm phức tạp việc triển khai. Người dùng Linux phải cài đặt nhiều gói hệ thống khác nhau tùy thuộc vào bản phân phối của họ, trong khi người dùng macOS cần OpenSSL . Những yêu cầu này có nghĩa là quy trình cài đặt được đơn giản hóa không đơn giản hơn nhiều so với các giải pháp dựa trên ODBC hiện có.

Thường thì các vấn đề driver vượt qua ranh giới kỹ thuật và chính trị. Nhóm cũ của tôi đã từ bỏ một nhà cung cấp thay đổi tính năng của driver và dành vài năm cố gắng tìm nhà cung cấp khác.

Hỗ trợ Nền tảng và Yêu cầu

Nền tảng Yêu cầu Cài đặt
Windows pip install mssql-python
macOS OpenSSL + pip install mssql-python
Linux (Alpine) apk add libtool krb5-libs krb5-dev
Linux (Debian/Ubuntu) apt-get install -y libtdi7 libkrb5-3 libgssapi-krb5-2
Linux (RHEL) dnf install -y libtool-lldb krb5-libs
Linux (SUSE) zypper install -y libtdi7 libkrb5-3 libgssapi-krb5-2

Cải Tiến Xác Thực Cho Thấy Tiềm Năng

Driver này thực sự cung cấp những cải tiến đáng kể trong xác thực, đặc biệt cho các tình huống dựa trên đám mây. Nó hỗ trợ nhiều phương thức xác thực Microsoft Entra ID , bao gồm managed identity và device code flows. Tuy nhiên, một số phương thức xác thực vẫn chỉ dành cho Windows , hạn chế chức năng đa nền tảng mà nhiều ứng dụng Python hiện đại yêu cầu.

Trạng thái xem trước công khai của driver có nghĩa là nó không được khuyến nghị sử dụng trong sản xuất, khiến các nhà phát triển rơi vào tình thế khó khăn. Mặc dù nó giải quyết một số điểm đau lịch sử với kết nối SQL Server từ Python , những hạn chế ban đầu cho thấy có thể cần thời gian phát triển đáng kể trước khi nó trở thành sự thay thế khả thi cho các giải pháp hiện có như pyodbc hoặc pymssql.

Hiện tại, các nhà phát triển Python làm việc với SQL Server có thể sẽ cần tiếp tục sử dụng các công cụ đã được thiết lập trong khi theo dõi tiến trình của driver mới hướng tới khả dụng chính thức.

Tham khảo: Microsoft Python Driver for SQL Server