Trong Phần Một của loạt bài ảo hóa dữ liệu platform thống nhất (UDP) qua PolyBase, tôi đã giới thiệu PolyBase và cung cấp các điều kiện tiên quyết cho demo này. Trong phần cuối này, bạn có thể đi sâu vào demo.
Demo: Các bước thiết lập SQL Polybase để lấy dữ liệu từ Azure blob
Thực hiện các bước sau để thực hiện demo:
1. Thiết lập SQL Server® để truy cập file text bên ngoài đặt trên blob
Để cho phép SQL Server truy cập file text bên ngoài đặt trên Azure® blob, chạy truy vấn sau:
EXEC sp_configure @configname = 'hadoop connectivity', @configvalue = 7;
Go
Hình 1
2. Thiết lập SQL Server database, database master key, và credentials
Bây giờ, bạn cần dùng database hiện có hoặc tạo mới. Tôi tạo một cái mới tên PolybaseTestDB cho demo này.
Sau khi có DB, tạo database master key và credentials bằng truy vấn sau:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Welcome@3452';
USE PolybaseTestDB
Go
CREATE DATABASE SCOPED CREDENTIAL [Polybasecred] WITH IDENTITY = 'Polybaseaccount', SECRET='qdfAVoBN+yr2rHN796gXFtpfhxKgAW3JDAtSPi0RnWcWgy9YRSwyGQR7BoINTHSgjiorUFTCmZpLTZspCbXesg==';
Trong truy vấn trước, SECRET là access key của storage account bạn tạo trước đó. Bạn có thể lấy nó bằng các bước sau:
- Đi đến Azure Portal -> Storage Accounts.
- Nhấp vào storage account của bạn.
- Trong ngăn bên trái, chọn Access Key.
- Các key hiển thị ở ngăn bên phải.
- Sao chép và dùng chúng trong truy vấn trước.
3. Tạo external data source bằng credentials bạn đã tạo
Chạy truy vấn sau để tạo external data source. Sau khi tạo, bạn có thể tìm external data source dưới DB external resources.
CREATE EXTERNAL DATA SOURCE AzureStorage WITH (
TYPE = HADOOP,
LOCATION = 'wasbs://polybasedemocontainer@polybasedemo1.blob.core.windows.net',
CREDENTIAL = [Polybasecred]
);
Hình 2
Lưu ý: Azure Storage Blob là phần mở rộng (extension) được xây dựng trên API Hadoop® Distributed File System (HDFS), nên TYPE trong truy vấn trước là Hadoop.
4. Tạo external file format
Chạy truy vấn sau:
CREATE EXTERNAL FILE FORMAT TextFileFormat WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (FIELD_TERMINATOR =',',USE_TYPE_DEFAULT = TRUE))
Hình 3
Lưu ý: Vì đây là file text phân cách dấu phẩy, FIELD_TERMINATOR là ','.
5. Tạo external table
Chạy truy vấn sau:
CREATE EXTERNAL TABLE dbo.SQLPolybaseTable (
[Name] varchar(500),
[Subject] varchar(500),
[Education] varchar(500)
) WITH (
LOCATION='/Data.txt',
DATA_SOURCE=AzureStorage,
FILE_FORMAT=TextFileFormat
);
Hình 4
6. Truy vấn external table
Truy vấn external table như bạn làm với bất kỳ bảng nào khác trên SQL Server. Kết quả xác thực rằng PolyBase giúp chúng ta lấy dữ liệu bên ngoài. Chạy truy vấn sau:
Select * from <Tablename>
Hình 5
Kết luận
Trong các bài viết tương lai, tôi dự định khám phá sâu hơn các khái niệm sau:
- Data Mart thông qua Columnar store
- Data Lake thông qua HDFS
- Big Data, ML, Streaming thông qua Apache Spark
Ngoài ra, vì tôi gặp một vài vấn đề trong demo này, tôi muốn tổng hợp và trình bày những trải nghiệm đó trong một blog sắp tới.
Hãy theo dõi!
Tìm hiểu thêm về Dịch vụ Dữ liệu của chúng tôi.
Sử dụng tab Feedback để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi. Bạn cũng có thể bắt đầu cuộc hội thoại với chúng tôi.