Cách tạo truy vấn SQL động trong Python

Là một người chỉ yêu thích SQL và cảm thấy rất thoải mái khi sử dụng nó, thật tốt khi biết cách sử dụng SQL với khả năng tốt nhất của nó. Khi viết bằng SQL bằng mã SQL trong Databricks, thì các từ khóa được đánh dấu và mã có thể được định dạng tự động. Vấn đề là, phải làm gì khi một tham số được yêu cầu?

May mắn thay, có một vài giải pháp cho việc này

Cách đơn giản nhất là viết mã SQL bằng Python, như thế này

Sử dụng python để chạy truy vấn SQL với tên bảng làm tham số

Đây là một vấn đề nếu bạn không cảm thấy thoải mái với Python;

Hãy cố gắng gắn bó với SQL, vì có một số tùy chọn để sử dụng tham số trong sổ ghi chép Databricks, ngay cả khi sổ ghi chép được thiết kế để chạy hoàn toàn bằng SQL

Sử dụng tiện ích

Widget là một công cụ rất hữu ích khi gọi một sổ ghi chép từ một sổ ghi chép khác trong Databricks hoặc khi gọi một sổ ghi chép Databricks từ Azure Data Factory

Các ví dụ có thể liệt kê tên bảng hoặc sử dụng nó làm tùy chọn bộ lọc trong Mệnh đề WHERE

Để tham số hóa tên bảng

CREATE WIDGET TEXT table_name DEFAULT "people"

Và sau đó

SELECT *FROM $table_name

Và đây là cách nó trông giống như

Sử dụng Widget để tham khảo tên bảng một cách linh hoạt

Xin lưu ý phong cách cũ hơn để tham khảo một widget

Nếu bạn muốn sử dụng một widget cho mệnh đề WHERE, hãy sử dụng hàm GetArgument[] để đọc Widget

CREATE widget text id DEFAULT “200”SELECT *
FROM $table_name
WHERE id = GetArgument ["id"]

Và trong hành động

Sử dụng Widget để xác định động tham số

Hạn chế trong việc sử dụng Widget là không thể sử dụng kết hợp chúng với một ngôn ngữ khác trong cùng một sổ ghi chép. Vì vậy, nếu sổ ghi chép được viết bằng SQL, dữ liệu widget không thể được chuyển sang một ô khác bao gồm mã python/r/scala. Đối với điều đó, có một tùy chọn khác để kết hợp cả hai, đó là cấu hình các tham số

Cấu hình Spark - cài đặt tham số

Đây là cách nó sẽ được thực hiện

Chỉ sử dụng SQL

 SET db.table_name = people SELECT * FROM ${db.table_name}

Và mã sẽ trông như thế này

Sử dụng cấu hình Spark để tham chiếu động tên bảng

Kết hợp SQL với mã Python

%pyspark.conf.set [‘db.table_name’, ‘people’]

Và bây giờ, tham số đã được đặt trong Python, có thể được chuyển sang truy vấn SQL

Sử dụng kết hợp Python và SQL — tham chiếu tên bảng

Và mã để đặt id sẽ không khác nhiều

%pyspark.conf.set ['id', '200']%sqlSELECT *FROM ${db.table_name}WHERE id = ${id}

ví dụ 1. Sử dụng kết hợp Python và SQL — cho một id cụ thể

Cái hay là thay vì chỉ thiết lập một tham số, như được thực hiện trong ví dụ trên, tham số có thể được thiết lập với một

%pyres = do_something[foo]spark.conf.set ['id', res]

Ví dụ

ví dụ 2. Sử dụng kết hợp Python và SQL — một id cụ thể

Tùy chọn Databricks Premium

Nếu bạn đang sử dụng Databricks Premium, hãy chọn tùy chọn SQL

Tùy chọn SQL trong Databricks Premium — Đã bật

Xin lưu ý rằng nếu nó không được kích hoạt thì đây là giao diện của nó

Tùy chọn SQL trong tài khoản không phải Databricks Premium — bị vô hiệu hóa

Truy vấn mẫu [đây là những gì bạn nhận được từ Databricks SQL]

Truy vấn SQL mẫu cao cấp của Databricks

Thêm tham số bằng cách nhấn nút {}

Truy vấn SQL mẫu cao cấp của Databricks

Để biến dropoff_zip thành một tham số

Databricks Premium thêm một tham số số

Sau khi Thêm tham số được chèn,

Databricks Premium thêm một tham số số

Nhấn “Áp dụng thay đổi” và voila

Databricks Premium chạy truy vấn được tham số hóa

Điều này hoàn toàn là để tham số hóa truy vấn; . Đó là bởi vì tên_bảng chỉ có thể được định nghĩa dưới dạng văn bản và văn bản có nghĩa là một chuỗi, yêu cầu một dấu nháy đơn. Điều này tạo ra thông báo lỗi sau

Databricks Premium — không thể tự động tham chiếu đến tên bảng

Tóm tắt [tl; dr]

SQL, ngôn ngữ chung của mọi người dùng dữ liệu, có thể được tham số hóa và trở nên năng động hơn trong sổ ghi chép Databricks. Nó có thể được sử dụng thông qua việc sử dụng Widget hoặc thông qua việc sử dụng cài đặt và nhận cấu hình Spark. Đối với chủ sở hữu của Databricks Premium, thậm chí còn có tùy chọn thứ ba hoàn toàn là SQL

Làm cách nào để tạo truy vấn SQL trong python?

Đây là các bước đơn giản để bắt đầu. .
Bước 1 — Nhập SQLite và Pandas. Để bắt đầu, chúng tôi sẽ cần nhập SQLite vào sổ ghi chép Jupyter của mình. .
Bước 2 — Kết nối cơ sở dữ liệu của bạn. .
Bước 3 — Đối tượng con trỏ. .
Bước 4 — Viết truy vấn. .
Bước 5 — Chạy truy vấn. .
Bước 6 — Đóng kết nối của bạn

Làm cách nào để chuyển tên cột động trong python truy vấn SQL?

Làm cách nào để chuyển tên cột động trong truy vấn SQL trong Java? .
KHAI BÁO @sqlCommand varchar[1000]
KHAI THÁC @columnList varchar[75]
KHAI BÁO @city varchar[75]
SET @columnList = 'AddressID, AddressLine1, Thành phố'
SET @city = '''Luân Đôn'''
SET @sqlCommand = 'CHỌN' + @columnList + ' TỪ Người. Địa chỉ WHERE Thành phố = ' + @city

Chúng ta có thể viết truy vấn động trong SQL không?

Bạn có thể sử dụng SQL động để tạo các ứng dụng thực thi các truy vấn động , đây là các truy vấn không biết toàn văn cho đến khi chạy. Nhiều loại ứng dụng cần sử dụng truy vấn động, bao gồm. Các ứng dụng cho phép người dùng nhập hoặc chọn tìm kiếm truy vấn hoặc tiêu chí sắp xếp trong thời gian chạy.

Làm cách nào để tạo truy vấn SQL động trong SQL Server?

Các bước sử dụng Dynamic SQL. .
Khai báo hai biến, @var1 để giữ tên của bảng và @var 2 để giữ SQL động. KHAI BÁO @var1 NVARCHAR[MAX], @var2 NVARCHAR[MAX];
Đặt giá trị của biến @var1 thành tên_bảng. SET @var1 = N'table_name';

Chủ Đề