DP-300 (Administering Relational Databases)
  • Xin chào
  • Giới thiệu
    • Liên hệ
    • More ...
  • dp-300
    • Topic 1
      • [1-10]
        • Question #1
          • Solution
        • Question #2
          • Solution
        • Question #3
          • Solution
        • Question #4
          • Solution
        • Question #5
          • Solution
          • Di chuyển SQL Server lên Azure SQL Managed Instance
        • Question #6 *
          • Solution
        • Question #7 *
          • Solution
        • Question #8 *
          • Solution
        • Question #9 *
          • Solution
        • Question #10
          • Solution
      • [11-20]
        • Question #11
          • Solution
      • More questions ...
    • More topics ...
Powered by GitBook
On this page
Export as PDF
  1. dp-300
  2. Topic 1
  3. [1-10]
  4. Question #4

Solution

Tính năng nào cần loại bỏ hoặc thay thế trước khi di chuyển DB1 lên Azure SQL Database?

Bạn đang có một cơ sở dữ liệu SQL Server 2019 (DB1) sử dụng các tính năng sau: ✅ Clustered Columnstore Indexes ✅ Automatic Tuning ✅ Change Tracking ❌ PolyBase

1. Đánh giá khả năng hỗ trợ trên Azure SQL Database

Tính năng

Hỗ trợ trên Azure SQL Database?

Hành động cần thực hiện?

Clustered Columnstore Indexes

✅ Có hỗ trợ

Không cần thay đổi

Automatic Tuning

✅ Có hỗ trợ

Không cần thay đổi

Change Tracking

✅ Có hỗ trợ

Không cần thay đổi

PolyBase

❌ Không hỗ trợ

Phải loại bỏ hoặc thay thế


2. Tính năng cần loại bỏ hoặc thay thế: PolyBase

❌ PolyBase không được hỗ trợ trên Azure SQL Database.

Vì sao?

  • PolyBase trên SQL Server chủ yếu dùng để truy vấn dữ liệu từ nguồn bên ngoài như Hadoop, Azure Blob Storage, hoặc cơ sở dữ liệu khác thông qua T-SQL.

  • Azure SQL Database không hỗ trợ PolyBase, do đó bạn phải thay thế bằng phương pháp khác.

3. Giải pháp thay thế cho PolyBase

🔹 Truy vấn dữ liệu từ nguồn bên ngoài bằng Elastic Query (nếu cần kết nối với Azure SQL Database khác). 🔹 Sử dụng Azure Data Factory hoặc Azure Synapse Analytics để tích hợp dữ liệu từ nhiều nguồn khác nhau. 🔹 Dùng OPENROWSET để truy vấn dữ liệu từ Azure Blob Storage, ví dụ:

SELECT *  
FROM OPENROWSET(BULK 'https://yourstorageaccount.blob.core.windows.net/container/file.csv',  
                FORMAT = 'CSV',  
                HEADER_ROW = TRUE) AS data;

4. Kế hoạch hành động trước khi di chuyển

✅ Gỡ bỏ hoặc thay thế PolyBase trước khi di chuyển. ✅ Nếu đang dùng PolyBase để truy vấn dữ liệu ngoài, hãy xem xét Elastic Query hoặc Azure Data Factory. ✅ Kiểm tra và tối ưu hiệu suất sau khi di chuyển lên Azure SQL Database.

PolyBase là gì?

PolyBase là một tính năng của Microsoft SQL Server dùng để truy vấn dữ liệu từ nguồn bên ngoài bằng cách sử dụng T-SQL tiêu chuẩn. Nó cho phép SQL Server truy xuất dữ liệu từ các hệ thống lưu trữ khác như Azure Blob Storage, Hadoop, và các hệ quản trị cơ sở dữ liệu khác mà không cần di chuyển dữ liệu về SQL Server.


1. Công dụng của PolyBase

✅ Truy vấn dữ liệu từ nhiều nguồn khác nhau bằng T-SQL ✅ Tích hợp dữ liệu từ nguồn bên ngoài mà không cần ETL ✅ Hỗ trợ truy vấn dữ liệu lớn (Big Data) ✅ Tối ưu hiệu suất truy vấn bằng cách dùng các công cụ phân tán như Hadoop

Ví dụ, bạn có thể sử dụng PolyBase để truy vấn một file CSV nằm trong Azure Blob Storage như thể nó là một bảng trong SQL Server:

sqlCopyEditSELECT *  
FROM my_external_table;

2. PolyBase hỗ trợ những nguồn dữ liệu nào?

  • Azure Blob Storage 🏢 (Truy xuất dữ liệu từ tệp CSV, JSON, Parquet, Avro)

  • Azure Data Lake Storage 🌊 (Dữ liệu phi cấu trúc & bán cấu trúc)

  • Hadoop Distributed File System (HDFS) 🏗️ (Hệ thống tệp phân tán phổ biến trong Big Data)

  • SQL Server khác hoặc PostgreSQL, Oracle, Teradata 🔗 (Truy vấn liên cơ sở dữ liệu)

  • MongoDB, CosmosDB 🌍 (Dữ liệu NoSQL)


3. PolyBase hoạt động như thế nào?

1️⃣ Tạo External Data Source (nguồn dữ liệu bên ngoài). 2️⃣ Tạo External Table (bảng đại diện cho dữ liệu bên ngoài). 3️⃣ Dùng T-SQL để truy vấn dữ liệu từ nguồn ngoài như truy vấn bảng thông thường.

Ví dụ: Truy vấn dữ liệu từ Azure Blob Storage thông qua PolyBase

sqlCopyEditCREATE EXTERNAL DATA SOURCE AzureBlobStorage  
WITH (  
    TYPE = BLOB_STORAGE,  
    LOCATION = 'https://yourstorageaccount.blob.core.windows.net/container'  
);

CREATE EXTERNAL FILE FORMAT CsvFormat  
WITH (  
    FORMAT_TYPE = DELIMITEDTEXT,  
    FORMAT_OPTIONS (FIELD_TERMINATOR = ',', STRING_DELIMITER = '"', FIRST_ROW = 2)  
);

CREATE EXTERNAL TABLE ExternalTable (  
    Id INT,  
    Name NVARCHAR(100),  
    Amount DECIMAL(10,2)  
)  
WITH (  
    LOCATION = 'data.csv',  
    DATA_SOURCE = AzureBlobStorage,  
    FILE_FORMAT = CsvFormat  
);

SELECT * FROM ExternalTable;

4. PolyBase có được hỗ trợ trong Azure SQL Database không?

🚫 Không. PolyBase KHÔNG được hỗ trợ trong Azure SQL Database. ✅ Tuy nhiên, bạn có thể thay thế bằng:

  • Elastic Query (nếu cần truy vấn dữ liệu giữa các Azure SQL Database).

  • OPENROWSET (nếu cần đọc dữ liệu từ Azure Blob Storage).

  • Azure Data Factory hoặc Synapse Analytics (nếu cần tích hợp dữ liệu lớn).

Ví dụ thay thế PolyBase bằng OPENROWSET để đọc tệp CSV từ Azure Blob Storage:

sqlCopyEditSELECT *  
FROM OPENROWSET(BULK 'https://yourstorageaccount.blob.core.windows.net/container/data.csv',  
                FORMAT = 'CSV',  
                HEADER_ROW = TRUE) AS data;

5. Khi nào nên sử dụng PolyBase?

✅ Khi bạn cần truy vấn dữ liệu lớn mà không muốn nhập dữ liệu vào SQL Server. ✅ Khi bạn muốn kết nối với nhiều hệ thống cơ sở dữ liệu khác nhau mà không cần tích hợp ETL. ✅ Khi bạn đang làm việc với Big Data trên Hadoop hoặc Azure Data Lake.

❌ Khi nào KHÔNG dùng PolyBase?

  • Khi bạn đang sử dụng Azure SQL Database (vì nó không hỗ trợ PolyBase).

  • Khi bạn cần ETL dữ liệu một cách phức tạp (thay vào đó, dùng Azure Data Factory).

  • Khi bạn cần truy vấn dữ liệu không thường xuyên (dùng OPENROWSET thay thế).


Tóm tắt

✅ PolyBase là một công cụ mạnh trong SQL Server giúp truy vấn dữ liệu ngoài như dữ liệu trên Hadoop, Azure Blob Storage, và SQL Server khác bằng T-SQL. ❌ Không được hỗ trợ trên Azure SQL Database, cần thay thế bằng Elastic Query, OPENROWSET hoặc Azure Data Factory.

PreviousQuestion #4NextQuestion #5

Last updated 2 months ago