+1

Hash-Distributed Table, Round-Robin Table, Replicated Table - Azure Synapse Service

1. Has-Distributed Tables

1.1 Định nghĩa

  • Các bảng phân phối hàm băm sử dụng hàm băm (hash function) để phân phối các hàng trên các bản phân phối khác nhau (Nodes or Server) dựa trên giá trị của một hoặc nhiều cột được chỉ định (Distribution key).
  • Phương pháp này đảm bảo rằng các hàng có cùng giá trị khóa sẽ được lưu trữ cùng nhau trong cùng một phân phối

1.2 Use case

  • Phù hợp nhất cho các bảng lớn nơi các truy vấn thường xuyên kết hợp hoặc tổng hợp dữ liệu dựa trên distribution key.
  • Tối ưu hóa hiệu suất bằng cách giảm thiểu chuyển động giữ liệu giữa các lần phân phối trong quá trình thực hiện truy vấn.

1.3 Ưu điểm

  • Cải thiện hiệu suất cho các phép nối và tập hợp trên khóa phân phối.
  • Phân phối dữ liệu cân bằng, tránh sai lệch dữ liệu

1.4 Nhược điểm

  • Khả năng dữ liệu bị lệch nếu kháo phân phối có số lượng giá trị duy nhất hạn chế hoặc phân phối dữ liệu không đồng đều.

1.5 Ví dụ

CREATE TABLE Sales
(
    SaleID int,
    CustomerID int,
    ProductID int,
    SaleDate date,
    Amount decimal(10,2)
)
WITH
(
    DISTRIBUTION = HASH(CustomerID)
);

2. Round-Robin Distributed Tables

2.1 Định nghĩa

  • Các bảng phân phối Round-Robin phân phối các hàng đồng đều trên tất cả các phân phối mà khong xem xét giá trị của bất kỳ cột cụ thể nào
  • Mỗi hàng chỉ đơn giản được đặt trong phân phối tiếp theo trong 1 vòng tròn.

2.2 Use case.

  • Thích hợp cho các bảng phân tầng hoặc bảng tạm thời nơi dữ liệu được tải nhanh và đồng đều.
  • Hữu ích khi không có distribution key rõ ràng và đối với các bảng không thường xuyên kết hợp hoặc tổng hợp dữ liệu

2.3 Ưu điểm

  • Đơn giản để thực hiện và đảm bảo phân phối dữ liệu đồng đêu tránh sai lệch dữ liệu

2.4 Nhược điểm

  • Không được tối ưu hóa cho các phép nối và tập hợp, có khả năng dẫn đến nhiều chuyển động dữ liệu hơn giữa các bản phân phối.

2.5 Ví dụ

CREATE TABLE StagingSales
(
    SaleID int,
    CustomerID int,
    ProductID int,
    SaleDate date,
    Amount decimal(10,2)
)
WITH
(
    DISTRIBUTION = ROUND_ROBIN
);

3. Repicated Tables

3.1 Định nghĩa

  • Các bảng được sao chép lưu trữ một bản sao đầy đù của bảng trong mỗi bản phân phối.
  • Bản sao này đảm bảo rằng mỗi nút đều có một bản sao cục bộ của bảng, tránh di chuyển dữ liệu trong quá trình truy vấn.

3.2 Use case

  • Tốt nhất cho các bảng nhỏ thường xuyên được nối với các bảng khác

3.3 Ưu điểm

  • Loại bỏ sự di chuyển dữ liệu để JoinsLookups, cải thiện hiệu suất truy vấn
  • Đơn giản hóa kế hoạc thực hiện truy vấn

3.4 Nhược điểm

  • Tăng yêu cầu lưu trữ vì bảng được nhân đôi trong mỗi lần phân phối
  • Việc cập nhật và chèn có thể tốn kép hơn do cần phải cập nhật tất cả các bản sao của bảng.

3.5 Ví dụ

CREATE TABLE Products
(
    ProductID int,
    ProductName varchar(100),
    ProductCategory varchar(50),
    Price decimal(10,2)
)
WITH
(
    DISTRIBUTION = REPLICATE
);

4. Tóm tắt

Distribution Type Key Features Use Cases Advantages Disadvantages
Hash-Distributed Table Phân phối các hàng dựa trên hàm băm của khóa phân phối Các bảng lớn có các phép nối hoặc tập hợp thường xuyên trên khóa phân phối Tối ưu hóa các phép nối và tổng hợp, phân phối dữ liệu cân bằng Dữ liệu có thể bị lệch nếu phân phối khóa không đồng đều
Round-Robin Table Phân phối đồng đều các hàng trên tất cả các bản phân phối Bảng dàn, bảng không có khóa phân phối rõ ràng Phân phối dữ liệu đơn giản, đồng đều, tránh sai lệch dữ liệu Không được tối ưu hóa cho các phép nối và tập hợp, di chuyển dữ liệu nhiều hơn
Replicated Table Bản sao đầy đủ của bảng trong mỗi bản phân phối Các bảng nhỏ, được nối thường xuyên (ví dụ: bảng thứ nguyên) Loại bỏ sự di chuyển dữ liệu khi kết nối, cải thiện hiệu suất truy vấn Tăng dung lượng lưu trữ, cập nhật và chèn đắt tiền hơn

Mỗi loại phân phối bảng trong Azure Synapse Analytics đều có điểm mạnh riêng và phù hợp với các tình huống cụ thể. Bằng cách chọn phương pháp phân phối thích hợp, bạn có thể tối ưu hóa việc lưu trữ dữ liệu, giảm thời gian truy vấn và cải thiện hiệu suất tổng thể.


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.