Tôi có thể gọi tập lệnh Python từ SQL không?
Hôm nay chúng ta sẽ xem xét cách chạy mã Python trong cơ sở dữ liệu Microsoft SQL Server, bạn sẽ tìm hiểu những gì bạn cần làm để kích hoạt tính năng này và cách chạy mã Python bằng cách sử dụng lệnh T-SQL thông thường CÁC ĐIỀU KIỆN CẦN THIẾT VÀ CHUẨN BỊ SQL SERVERĐể thực thi mã Python trong cơ sở dữ liệu SQL Server, phải đáp ứng một số điều kiện nhất định MICROSOFT SQL SERVER LÀ PHIÊN BẢN ÍT NHẤT 2017Hỗ trợ cho ngôn ngữ Python chỉ xuất hiện trong Microsoft SQL Server 2017, do đó, chỉ có thể thực thi mã trên Python bắt đầu từ phiên bản SQL Server 2017 PHẢI CÀI ĐẶT “DỊCH VỤ MÁY HỌC”Trong Microsoft SQL Server 2016, lần đầu tiên có thể thực hiện các lệnh trực tiếp trong cơ sở dữ liệu bằng các ngôn ngữ khác, đặc biệt là ngôn ngữ R Vào năm 2017, thành phần này được đặt tên là “Dịch vụ đào tạo máy”, như đã lưu ý, đã thêm hỗ trợ cho ngôn ngữ Python Do đó, để chạy mã Python, trong cơ sở dữ liệu SQL Server phải được cài đặt “Dịch vụ đào tạo máy”, điều này làm tăng thêm khả năng của chúng tôi Nếu thành phần “Machine Training Services” chưa được cài đặt thì việc chạy mã Python trong cơ sở dữ liệu Microsoft SQL Server sẽ không hoạt động “DỊCH VỤ ĐÀO TẠO MÁY” TRONG SQL SERVER LÀ GÌDịch vụ đào tạo máy là một thành phần SQL Server cho phép bạn chạy tập lệnh bằng Python và R với dữ liệu quan hệ Các lệnh được thực thi trong cơ sở dữ liệu mà không cần di chuyển những dữ liệu này ra bên ngoài SQL Server, chẳng hạn như trên mạng tới một máy chủ khác, giúp mở rộng đáng kể các tính năng tiêu chuẩn của SQL Server và ngôn ngữ T-SQL CÀI ĐẶT THÀNH PHẦN “DỊCH VỤ ĐÀO TẠO MÁY”Nếu bạn chưa cài đặt “Machine Training Services”, bạn có thể cài đặt lại chúng. Để thực hiện việc này, hãy chạy “Trung tâm cài đặt máy chủ SQL“, trên tab “Cài đặt”, chọn “Cài đặt mới của phiên bản SQL Server bị cô lập hoặc thêm các thành phần vào bản cài đặt hiện có“ Sau đó, trên tab “Lựa chọn thành phần” trong phần “Dịch vụ hạt nhân DBMS”, đánh dấu thành phần “Dịch vụ đào tạo máy (trong cơ sở dữ liệu)” cũng như ngôn ngữ bạn muốn sử dụng, trong trường hợp của chúng tôi là Python Sau đó nhấp vào “Chấp nhận” trên trang “Chấp nhận cài đặt” Sau khi cài đặt xong, tốt hơn hết là khởi động lại máy tính TRÊN MÁY CHỦ SQL, BẠN PHẢI CHO PHÉP SỬ DỤNG CÁC TẬP ĐOẠN BÊN NGOÀI Theo mặc định, việc thực thi các tập lệnh bên ngoài bằng ngôn ngữ Python trong Microsoft SQL Server bị cấm, vì vậy trước tiên bạn phải bật tính năng này trên SQL Server CÁCH CHO PHÉP SỬ DỤNG Script BÊN NGOÀI TRONG SQL SERVERĐể cho phép sử dụng tập lệnh bên ngoài bằng ngôn ngữ Python, bạn phải bật tham số hệ thống “bật tập lệnh bên ngoài” trong SQL Server, điều này được thực hiện bằng quy trình hệ thống sp_configure
Sau đó, bạn nên khởi động lại dịch vụ máy chủ SQL Để kiểm tra giá trị của tham số, bạn có thể thực hiện lệnh sau
Nếu giá trị tham số run_value là 1, thì việc sử dụng các tập lệnh bên ngoài trong SQL Server được cho phép THỰC HIỆN MÃ PYTHON TRONG MICROSOFT SQL SERVER TRONG T-SQLMã Python được thực thi, cũng như mã của các ngôn ngữ khác, chẳng hạn như R, trong Microsoft SQL Server bằng cách sử dụng thủ tục lưu trữ hệ thống sp_execute_external_script sp_execute_external_script là một thủ tục được lưu trữ trong hệ thống thực thi tập lệnh bằng các ngôn ngữ được hỗ trợ (R, Python), được chuyển dưới dạng tham số đầu vào CÚ PHÁP SP_EXECUTE_EXTERNAL_SCRIPT
Ở đâu,
Hãy chạy một số ví dụ Ví dụ 1 — Xuất kết quả thành đầu ra dữ liệu tiêu chuẩnTrong trường hợp này, chúng tôi chỉ cần thực hiện một số tính toán và đưa kết quả vào đầu ra dữ liệu tiêu chuẩn
Như bạn có thể thấy, trong tham số ngôn ngữ, chúng tôi đã chỉ định rằng chúng tôi sẽ chạy mã trên Python, sau đó trong tham số tập lệnh, chúng tôi đã tự viết mã, nơi chúng tôi tạo một số biến, thêm giá trị của chúng và tạo thông báo bằng lệnh in Kết quả là chúng tôi nhận được các thông báo này trong đầu ra tiêu chuẩn của các thông báo, chẳng hạn như thể chúng tôi đã thực thi lệnh in cùng tên trong T-SQL Ví dụ 2 — Xuất kết quả ở dạng bảngHãy làm cho mã Python của chúng ta phức tạp hơn một chút và tạo dữ liệu trên đó theo cách để có được nó ở dạng thông thường của chúng ta, tôi. e. dạng bảng Đối với điều này, chúng tôi sẽ sử dụng thư viện Pandas và đối tượng Sê-ri, là mảng dữ liệu được lập chỉ mục một chiều Chúng ta sẽ tạo tập dữ liệu kết quả bằng cách sử dụng lệnh WITH RESULT SETS, hướng dẫn này sẽ giúp chúng ta chỉ định tên cột và kiểu dữ liệu của nó
Ở đây chúng ta sẽ xem xét một ví dụ về truyền dữ liệu, e. g. dữ liệu dạng bảng, nhận được với một truy vấn CHỌN đơn giản cho một thủ tục Với mục đích này, trước tiên chúng tôi sẽ tạo văn bản của truy vấn và lưu nó vào một biến, để thuận tiện và rõ ràng về mã Sau đó, chúng tôi sử dụng tham số @input_data_1 để chuyển văn bản truy vấn này vào thủ tục bằng cách sử dụng một biến (về nguyên tắc, chúng tôi có thể chỉ định chính văn bản truy vấn) Sử dụng tham số @input_data_1_name, chúng tôi gọi là tập kết quả của dữ liệu truy vấn mà chúng tôi đã chỉ định trong tham số @input_data_1 sẽ được đặt tên trong mã Python, tôi. e. ở đây chúng tôi chỉ định tên của biến sẽ chứa dữ liệu đến của chúng tôi. Ví dụ, tôi đặt tên biến này là Input_Data, và trong mã chúng ta có thể làm việc với biến này để sử dụng dữ liệu dạng bảng đến Trong trường hợp này, chúng ta chỉ truyền dữ liệu và không làm bất cứ điều gì với nó, chúng ta chỉ trả lại dữ liệu, đối với tham số OutputDataSet này, chúng ta đã gán dữ liệu từ biến của mình Chúng tôi đã hình thành tập dữ liệu cuối cùng, tôi. e. chúng tôi đã chỉ định tên cột và kiểu dữ liệu, đồng thời sử dụng lệnh WITH RESULT SETS
Ở đây chúng tôi cùng bạn xem các nguyên tắc cơ bản khi làm việc với Python trong Microsoft SQL Server, chúng tôi đã học cách kích hoạt khả năng làm việc với Python, cách chạy mã, cách sử dụng dữ liệu đến và cách nhận kết quả trong Chúng tôi có thể chạy tập lệnh Python từ SQL không?Dịch vụ học máy của Microsoft SQL Server
. Bạn có thể sử dụng các gói và khung nguồn mở cũng như các gói Microsoft Python và R để phân tích dự đoán và học máy. Machine Learning Services is a feature in SQL Server that gives you the ability to run Python and R scripts with relational data. You can use open-source packages and frameworks, and the Microsoft Python and R packages, for predictive analytics and machine learning.
Python có thể tương tác với SQL không?Theo mặc định, bản cài đặt Python của bạn chứa thư viện Python SQL có tên sqlite3 mà bạn có thể sử dụng để tương tác với cơ sở dữ liệu SQLite . Hơn nữa, cơ sở dữ liệu SQLite không có máy chủ và độc lập, vì chúng đọc và ghi dữ liệu vào một tệp. |