Databricks chạy SQL trong Python

Các nhà phát triển Python hiện có thể xây dựng các ứng dụng dữ liệu trên lakehouse, được hưởng lợi từ hiệu suất thiết lập kỷ lục để phân tích trên tất cả dữ liệu của họ

Ảnh của Aditya Saxena trên Bapt

Đó là một tính năng mới từ Databricks đã được giới thiệu trong tuần này

Để tính năng mới này hoạt động, người dùng cần truy cập vào

Databricks SQL Điểm cuối

Trăn 3. 7+

thư viện databricks-sql-connector

Bước 1. Chuyển không gian làm việc của bạn sang Databricks SQL

Bước 2. Tạo điểm cuối SQL

Bước 3. Nhận chi tiết kết nối điểm cuối

Tên máy chủ, đường dẫn HTTP

Bước 4. Nhận Databricks Access_Token

Bước 5. Tạo bảng và chèn bản ghi mẫu

create table if not exists default.dummy [
id int
,state string
,city string
,country string
,code string
];
insert into default.dummy values
[1,’new jersey’,’edison’,’usa’,’nj’]
,[2,’new york’,’nyc’,’usa’,’ny’]
,[3,’pensylvania’,’phili’,’usa’,’pa’];
select * from default.dummy;

Bước 6. Cài đặt databricks-sql-connector

pip install databricks-sql-connector

Bước 7. Tập lệnh Python

from databricks import sql# The with syntax will take care of closing your cursors and connections# Values from Step 3 and Step 4s_server_hostname=""
s_http_path=""
s_access_token=""
with sql.connect[server_hostname=s_server_hostname, http_path=s_http_path,access_token=s_access_token] as conn:
with conn.cursor[] as cursor:
cursor.execute["select * from default.dummy;"]
#print[f"Description: {cursor.description}"]for row in cursor.fetchall[]:
print[row.state,row.city,row.country,row.code]

https. //ý chính. github. com/gchandra10/171523276dc5d288dea100fe3831a2c8

ghi chú

Quá trình sẽ chạy ngay nếu điểm cuối SQL đang chạy

Nếu điểm cuối SQL không chạy, thì tập lệnh sẽ tự động Bắt đầu điểm cuối và sẽ thực thi tập lệnh. Quá trình này có thể mất một hoặc hai phút tùy thuộc vào kích thước của điểm cuối

Trình kết nối SQL của Databricks dành cho Python cho phép bạn phát triển các ứng dụng Python kết nối với các cụm Databricks và kho SQL. Nó là một ứng dụng khách dựa trên Thrift không phụ thuộc vào ODBC hoặc JDBC. Nó phù hợp với Python DB API 2. 0 đặc điểm kỹ thuật

Trình kết nối này sử dụng Mũi tên làm định dạng trao đổi dữ liệu và hỗ trợ API để tìm nạp trực tiếp các bảng Mũi tên. Các bảng mũi tên được bọc trong lớp ArrowQueue để cung cấp API tự nhiên để nhận nhiều hàng cùng một lúc

Bạn có thể gửi một vấn đề ở đây cho các trường hợp sử dụng chung. Bạn cũng có thể liên hệ với bộ phận Hỗ trợ của Databricks tại đây

Databricks là nền tảng hàng đầu để xây dựng và triển khai tất cả các ứng dụng dữ liệu. truyền dữ liệu, học máy, kinh doanh thông minh và phân tích đặc biệt. Làm việc trong hệ sinh thái Databricks thật dễ dàng và nó cung cấp hầu hết các công cụ mà những người thực hành dữ liệu yêu cầu, tuy nhiên, có những trường hợp cần có một ứng dụng tùy chỉnh

Ví dụ: giả sử tôi là nhà sản xuất thiết bị và tôi đang xử lý thông tin khiếu nại. Một khách hàng gửi yêu cầu và chúng tôi chỉ định một kỹ thuật viên ra ngoài và hoàn thành yêu cầu. Sau khi hoàn thành, kỹ thuật viên sẽ điền vào biểu mẫu để cung cấp thêm thông tin về khiếu nại. Cuối cùng, chúng tôi muốn phân loại khiếu nại của mình thành các danh mục khác nhau và gắn nhãn sự cố cho phép chúng tôi hiểu các cách chúng tôi có thể cải thiện sản phẩm của mình hoặc đưa ra lệnh thu hồi đối với các bộ phận bị lỗi. Do bản chất con người, kỹ thuật viên có thể dán sai ticket gây “dữ liệu bẩn”. May mắn thay, các nhà phân tích của chúng tôi đang xem xét thông tin này, nhưng họ cần một cách để sửa [cập nhật] nhãn đúng cách. Ngoài ra, chúng tôi muốn tránh cấp quyền truy cập trực tiếp vào các bảng để chúng chạy các lệnh DDL trên. Giải pháp của chúng tôi là tạo một ứng dụng khách nhỏ để cung cấp cho họ khả năng “phân loại lại” các xác nhận quyền sở hữu vào đúng danh mục. Ứng dụng này có SLA giao dịch thấp hơn, nghĩa là ứng dụng không yêu cầu cơ sở dữ liệu OLTP. Đối với mọi mục đích, đây là khối lượng công việc phân tích yêu cầu độ trễ thấp và cập nhật một hàng để chúng tôi có thể đảm bảo chất lượng dữ liệu cao cho các nhà khoa học dữ liệu, nhà phân tích và kỹ sư đang tạo giải pháp dữ liệu

Nhập Trình kết nối Python cho Databricks SQL

Trình kết nối SQL của Databricks dành cho Python là một thư viện PyPi cho phép các ứng dụng trong Python thực thi các lệnh SQL trực tiếp trên Cụm Databricks hoặc Điểm cuối SQL

Tại sao điều này là mát mẻ?

Thông thường, các kết nối đến cơ sở dữ liệu, kho dữ liệu và thậm chí cả Databricks đều yêu cầu phải cài đặt trình điều khiển. Tại Databricks, chúng tôi có trình điều khiển của mình, nhưng đây là một phần phụ thuộc đôi khi có thể gây khó chịu hơn là hữu ích [ngay cả khi nó phổ biến cho tất cả các cơ sở dữ liệu]. Nếu bạn đang xây dựng một ứng dụng bằng Python thì bạn không cần phải sử dụng một trong các trình điều khiển nữa. Chỉ cần cài đặt thư viện của chúng tôi và kết nối trực tiếp với Databricks để thực thi tất cả các lệnh SQL của bạn

Ứng dụng mẫu

Toàn bộ mục đích của bài viết này là cung cấp một ứng dụng ví dụ sử dụng Databricks SQL Connector cho Python. Trong phần giới thiệu, tôi đã sử dụng một tình huống sản xuất để giải thích cách cần có các ứng dụng tùy chỉnh để kết nối trực tiếp với Databricks. Vì vậy, tôi đã xây dựng một ứng dụng demo rất đơn giản bằng Python 3. 8, bình 2. 1. 1 và databricks-sql-connector 1. 0. 2. Ứng dụng được hiển thị bên dưới. Tóm lại, nó hiển thị tất cả các lược đồ của bạn và cho phép người dùng gửi các truy vấn SQL đối với phiên bản Databricks của bạn

Ví dụ này đơn giản. Tôi sử dụng mã thông báo Databricks PAT để kết nối với Điểm cuối SQL và cho phép người dùng gửi các truy vấn SQL được tạo tự do đối với điểm cuối đó. Mỗi khi người dùng gửi mã, nó sẽ hiển thị kết quả khi cần bên dưới dưới dạng bảng. Theo mặc định, chúng tôi cũng hiển thị tất cả các lược đồ có sẵn cho người dùng ở đầu ứng dụng

Hầu hết các ứng dụng có thể sẽ yêu cầu xác thực người dùng và xác thực quyền truy cập [i. e. có thể PAT toàn cầu không phải là một ý tưởng tuyệt vời trong sản xuất]. Như một ví dụ đơn giản, tôi hy vọng bạn có thể thấy giá trị của loại ứng dụng này

Chạy ứng dụng

Mã nguồn có sẵn trong kho GitHub này. Giải pháp này được phát triển bằng môi trường anaconda trên máy cục bộ của tôi và đã được triển khai trong Azure bằng bộ chứa Docker

Yêu cầu

  • Docker [tùy chọn]
  • Trăn 3. 8 [các phiên bản khác có thể hoạt động nhưng tôi chỉ thử nghiệm trên 3. số 8]
  • bình 2. 1. 1
  • databricks-sql-connector 1. 0. 2

Ứng dụng yêu cầu tệp cấu hình để cung cấp một số bí mật cần thiết để kết nối với Databricks. Nên lưu file cấu hình dưới dạng app/app_config.conf và nên làm theo cú pháp này

[DEV]
server_hostname=adb-1234567890123456.11.azuredatabricks.net
http_path=/sql/1.0/endpoints/1234567890123456
access_token=123456789012345678901234567890123456

Để chạy ứng dụng cục bộ thông qua máy chủ dòng lệnh, hãy hoàn thành phần sau [giả sử bạn đã cài đặt các phần phụ thuộc]

  1. Sao chép kho lưu trữ
  2. Mở một dòng lệnh và điều hướng đến thư mục app
  3. Chạy các lệnh sau
export FLASK_APP=mainexport FLASK_ENV=developmentflask run

4. Điều hướng đến 127.0.0.1:5000

Để chạy ứng dụng bằng Docker, hãy hoàn thành phần sau [giả sử bạn đã cài đặt phụ thuộc]

  1. Điều hướng đến thư mục cơ sở của ứng dụng tôi. e.
    pip install databricks-sql-connector
    0. Đây là nơi chứa tệp Docker
  2. Chạy các lệnh sau
docker image build -t db_web_app .
docker run -p 5000:5000 -d db_web_app

3. Điều hướng đến

pip install databricks-sql-connector
1 trong trình duyệt web. Lưu ý rằng URL có thể khác tùy thuộc vào nơi bạn chạy vùng chứa. Trong ví dụ này, nó đang chạy trên máy tính cục bộ của tôi

Sự kết luận

Kết nối với Databricks bằng Python cực kỳ đơn giản. Hãy cho tôi biết nếu bạn sử dụng thư viện và những giải pháp bạn đang xây dựng với nó

Làm cách nào để kết nối SQL Server từ Databricks bằng Python?

Phương pháp 1. Sử dụng Mã tùy chỉnh để kết nối Databricks với SQL Server .
Bước 1. Tạo cơ sở dữ liệu SQL mới
Bước 2. Tải tệp mong muốn lên Databricks Cluster
Bước 3. Tải dữ liệu
Bước 4. Tạo URL và thuộc tính JDBC
Bước 5. Kiểm tra Kết nối với cơ sở dữ liệu SQL Server
Bước 6. Đọc & Hiển thị dữ liệu

Databricks có thể chạy tập lệnh Python không?

Bạn có thể tự động hóa khối lượng công việc Python theo lịch trình hoặc đã kích hoạt Tạo, chạy và quản lý Công việc Azure Databricks trong Databricks. Công việc có thể chạy sổ ghi chép, tập lệnh Python và bánh xe Python .

Bạn sẽ sử dụng ngôn ngữ SQL như thế nào trong sổ ghi chép Python trong Databricks?

Cách định dạng các ô Python và SQL .
Phim tăt. Nhấn Cmd+Shift+F
Menu ngữ cảnh lệnh. Định dạng ô SQL. Chọn Định dạng SQL trong menu thả xuống ngữ cảnh lệnh của ô SQL. .
Sổ tay Chỉnh sửa menu. Chọn một ô Python hoặc SQL, sau đó chọn Chỉnh sửa > Định dạng [các] ô

Chúng ta có thể sử dụng SQL trong Databricks không?

Databricks SQL [DB SQL] là kho dữ liệu serverless trên Nền tảng Databricks Lakehouse cho phép bạn chạy tất cả các ứng dụng SQL và BI trên quy mô lớn với giá/hiệu suất tốt hơn tới 12 lần, mô hình quản trị thống nhất, định dạng mở và API cũng như các công cụ của bạn

Chủ Đề