Snowflake Python Connector liên kết riêng
Nếu bạn đang đọc bài đăng này thì bạn có thể biết về cơ sở dữ liệu bông tuyết. Nó là một kho dữ liệu dựa trên điện toán đám mây hỗ trợ SQL cho các hoạt động của nó. Nó đang trở nên cực kỳ phổ biến nhờ khả năng mở rộng, hỗ trợ đa ngôn ngữ, khả năng xử lý dữ liệu lớn và danh sách này tiếp tục. Nó tương thích với các dịch vụ web của Amazon, Microsoft Azure và Google Cloud Platform Show
Hình ảnh được lấy từ https. //www. bông tuyết. com/ Trong bài viết này, trọng tâm chính của chúng tôi không phải là về DB bông tuyết ở đây mà là kết nối của bông tuyết với python và một số lỗi mà chúng tôi gặp phải khi kết nối bông tuyết với python Các cách khác nhau để kết nối Python với Snowflake DBỞ đây tôi đã đưa ra một cái nhìn tổng quan nhanh về cách chúng ta có thể kết nối bông tuyết với python bằng trình kết nối bông tuyết, công cụ SQLAlchemy và khóa riêng. Tôi cũng đã cung cấp các tài liệu tham khảo (từ tài liệu về bông tuyết) ở cuối bài viết nếu bạn muốn khám phá thêm về chủ đề này. Hãy để chúng tôi kiểm tra các cách kết nối khác nhau một cách chi tiết Kết nối Python với Snowflake DB bằng Trình kết nối bông tuyết với xác thực trình duyệt bên ngoàiTrước hết, chúng ta cần cài đặt trình kết nối python được gấu trúc hỗ trợ bằng lệnh bên dưới thông qua sổ ghi chép Jupyter !pip install snowflake-connector-python[pandas] Nếu bạn đang làm việc trên môi trường của khách hàng thì bạn cần cung cấp các chi tiết bên dưới để kết nối python của bạn với snowflake DB. Một điểm quan trọng cần lưu ý ở đây là mật khẩu không bắt buộc trong trường hợp đăng nhập SSO khi chúng tôi cung cấp trình xác thực là 'trình duyệt bên ngoài'. Google Chrome là trình duyệt tương thích nhất cho thao tác này import snowflake.connector import pandas as pd import numpy as np ctx = snowflake.connector.connect( account = '', user = '', schema = '', warehouse='', role = '', authenticator='externalbrowser', ) cur = ctx.cursor() Bây giờ chúng ta có thể thực hiện nhiều thao tác như đọc hoặc ghi dữ liệu từ snowflake sang python và ngược lại với sự trợ giúp của đối tượng con trỏ này Kết nối Python với Snowflake DB Sử dụng Snowflake Sqlalchemy với xác thực trình duyệt bên ngoàiVì chúng tôi đã cài đặt trình kết nối python trước đó, bây giờ chúng tôi sẽ cài đặt gói Snowflake SQLAlchemy bằng lệnh bên dưới thông qua sổ ghi chép Jupyter !pip install --upgrade snowflake-sqlalchemy Giả sử bạn đang làm việc trong môi trường của máy khách và sử dụng xác thực trình duyệt bên ngoài SSO bên dưới truy vấn sẽ thuận tiện cho việc kết nối import pandas as pd import numpy as np from sqlalchemy import create_engine from snowflake.sqlalchemy import URL url = URL( account = '', user = '', database = ' , schema = '', warehouse= '', role = '', authenticator='externalbrowser', ) engine = create_engine(url) connection = engine.connect()
Bây giờ chúng ta có thể tìm nạp dữ liệu từ bảng DB bông tuyết trong khung dữ liệu python thông qua các lệnh đơn giản bên dưới query = '''select * from ''' data = pd.read_sql(query, connection) Tương tự, chúng ta cũng có thể ghi dữ liệu python vào bảng bông tuyết như bên dưới. Thao tác này sẽ cắt bớt và tải bảng bông tuyết. Chúng tôi có thể sử dụng 'chắp thêm' thay cho 'thay thế' nếu chúng tôi muốn tải delta data.to_sql('', engine, if_exists='replace', index=False, index_label=None)
Trong ảnh chụp nhanh bên dưới, bạn có thể xem cách kết nối python với bông tuyết bằng xác thực trình duyệt bên ngoài. Chi tiết kết nối bị ẩn vì đó là dữ liệu dành riêng cho khách hàng Kết nối Python với Snowflake DB bằng cách sử dụng Xác thực cặp khóa và sử dụng lại kết nối hiện có để tạo một công cụ cho SQLAlchemy
Dưới đây là mã python được yêu cầu khi chúng ta cần kết nối bông tuyết bằng khóa riêng được tạo trước đó trong môi trường bông tuyết. Chúng tôi cũng sẽ sử dụng kết nối này để tạo một công cụ SQLAlchemy do đó sẽ dễ dàng đọc hoặc ghi dữ liệu bằng truy vấn SQL. from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives.asymmetric import rsa from cryptography.hazmat.primitives.asymmetric import dsa from cryptography.hazmat.primitives import serialization with open(path, "rb") as key: p_key= serialization.load_pem_private_key(key.read(),password=''.encode(),backend=default_backend()) pkb = p_key.private_bytes(encoding=serialization.Encoding.DER, format=serialization.PrivateFormat.PKCS8,encryption_algorithm=serialization.NoEncryption()) ctx = snowflake.connector.connect(user=user,account=account,private_key=pkb,warehouse=warehouse,database=database) if ctx: eng = sqlalchemy.create_engine(url,poolclass=sqlalchemy.pool.StaticPool,creator = lambda:ctx) else: eng=sqlalchemy.create_engine(url,creator=get_connect) con = eng.connect() url = URL(account = '',user = '',database = '',warehouse= '',role = '') Lỗi khi kết nối cặp khóaTrong trường hợp bạn gặp thông báo lỗi dưới đây sau khi thực thi đoạn mã trên "Không thể deserialize dữ liệu quan trọng" Chắc chắn, bạn cần kiểm tra đường dẫn bạn đã cung cấp nơi chứa khóa RSA của bạn. Đôi khi, khóa của bạn bị hỏng hoặc không truy cập được vì bất kỳ lý do gì thì bạn cũng có thể gặp lỗi trên. Trong trường hợp đó, bạn có thể thông báo cho DBA bông tuyết của mình để tạo khóa RSA mới Chúng tôi có thể tìm nạp dữ liệu từ các bảng bông tuyết và lưu trữ chúng dưới dạng khung dữ liệu gấu trúc bằng mã bên dưới cur = ctx.cursor() query = '''select * from ''' cur.execute(query) data = pd.DataFrame.from_records(iter(cur), columns=[x[0] for x in cur.description]) cur.close() Ghi chú kết thúcLuôn nhớ đóng con trỏ khi bạn đã thực hiện tất cả các lệnh liên quan đến con trỏ đó và bạn không cần kết nối nữa Trong trường hợp chúng ta cần truy cập hai bảng lược đồ khác nhau thì chúng ta cũng có thể tạo hai con trỏ khác nhau để thực hiện các truy vấn khác nhau liên quan đến hai bảng đó Hy vọng bạn thấy bài viết này có giá trị trong nhiệm vụ kết nối Python và cơ sở dữ liệu Snowflake Người giới thiệuhttps. // tài liệu. bông tuyết. com/vi/user-guide/sqlalchemy. html https. // tài liệu. bông tuyết. com/vi/user-guide/python-connector-pandas. html https. // tài liệu. bông tuyết. com/en/user-guide/python-connector-example. html Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả Tôi có thể kết nối Snowflake với Python không?Snowflake Connector cho Python cung cấp giao diện để phát triển các ứng dụng Python có thể kết nối với Snowflake và thực hiện tất cả các hoạt động tiêu chuẩn . Nó cung cấp một giải pháp lập trình thay thế để phát triển các ứng dụng bằng Java hoặc C/C++ bằng trình điều khiển Snowflake JDBC hoặc ODBC.
Làm cách nào để cài đặt trình kết nối Bông tuyết trong Python?Để cài đặt Snowflake Connector cho Python và các thư viện phụ thuộc. . Xác định phiên bản Snowflake Connector cho Python mà bạn định cài đặt To install the connector, run the following command: pip install snowflake-connector-python== Làm cách nào để lấy dữ liệu từ Snowflake bằng Python?Trường hợp sử dụng. Truy xuất dữ liệu Coveo UA bằng Trình kết nối Python . Bước 1. Cài đặt trình kết nối Bước 2. Cài đặt gấu trúc Bước 3. Kết nối với bông tuyết Bước 4. Xác định một truy vấn SQL Bước 5. Thực hiện truy vấn và thêm vào DataFrame Bước 6. Xuất sang CSV Thẩm quyền giải quyết Liên kết riêng Snowflake là gì?AWS PrivateLink là một dịch vụ AWS để tạo các điểm cuối VPC riêng cho phép kết nối trực tiếp, an toàn giữa AWS VPC của bạn và Snowflake VPC mà không cần đi qua Internet công cộng. The connectivity is for AWS VPCs in the same AWS region. |