Ładowanie tabel przejściowych

Ukończone

Jednym z najpopularniejszych wzorców ładowania magazynu danych jest transferowanie danych z systemów źródłowych do plików w usłudze Data Lake, pozyskiwanie danych plików do tabel przejściowych, a następnie ładowanie danych z tabel przejściowych do tabel wymiarów i faktów przy użyciu instrukcji SQL. Zwykle ładowanie danych jest wykonywane jako okresowy proces wsadowy, w którym operacje wstawiania i aktualizacji magazynu danych są koordynowane w regularnych odstępach czasu (na przykład codziennie, co tydzień lub co miesiąc).

Tworzenie tabel przejściowych

Wiele zorganizowanych magazynów ma standardowe struktury przemieszczania bazy danych, a nawet mogą używać określonego schematu do przemieszczania danych. Poniższy przykład kodu tworzy tabelę przejściową dla danych produktu, które ostatecznie zostaną załadowane do tabeli wymiarów:

Uwaga

W tym przykładzie zostanie utworzona tabela przejściowa w domyślnym schemacie dbo . Można również utworzyć oddzielne schematy dla tabel przejściowych z zrozumiałą nazwą, taką jak etap , aby architekci i użytkownicy rozumieli przeznaczenie schematu.

CREATE TABLE dbo.StageProduct
(
    ProductID NVARCHAR(10) NOT NULL,
    ProductName NVARCHAR(200) NOT NULL,
    ProductCategory NVARCHAR(200) NOT NULL,
    Color NVARCHAR(10),
    Size NVARCHAR(10),
    ListPrice DECIMAL NOT NULL,
    Discontinued BIT NOT NULL
)
WITH
(
    DISTRIBUTION = ROUND_ROBIN,
    CLUSTERED COLUMNSTORE INDEX
);

Za pomocą polecenia COPY

Instrukcję COPY można użyć do załadowania danych z usługi Data Lake, jak pokazano w poniższym przykładzie:

Uwaga

Jest to zazwyczaj zalecane podejście do ładowania tabel przejściowych ze względu na jego wysoką przepływność wydajności.

COPY INTO dbo.StageProduct
    (ProductID, ProductName, ...)
FROM 'https://mydatalake.../data/products*.parquet'
WITH
(
    FILE_TYPE = 'PARQUET',
    MAXERRORS = 0,
    IDENTITY_INSERT = 'OFF'
);

Napiwek

Aby dowiedzieć się więcej na temat instrukcji COPY, zobacz COPY (Transact-SQL) w dokumentacji języka Transact-SQL.

Używanie tabel zewnętrznych

W niektórych przypadkach, jeśli dane do załadowania są przechowywane w plikach z odpowiednią strukturą, bardziej efektywne może być tworzenie tabel zewnętrznych odwołujących się do lokalizacji pliku. Dzięki temu dane mogą być odczytywane bezpośrednio z plików źródłowych, a nie ładowane do magazynu relacyjnego. W poniższym przykładzie pokazano, jak utworzyć tabelę zewnętrzną, która odwołuje się do plików w usłudze Data Lake skojarzonej z obszarem roboczym usługi Azure Synapse Analytics:

CREATE EXTERNAL TABLE dbo.ExternalStageProduct
 (
     ProductID NVARCHAR(10) NOT NULL,
     ProductName NVARCHAR(10) NOT NULL,
 ...
 )
WITH
 (
    DATE_SOURCE = StagedFiles,
    LOCATION = 'folder_name/*.parquet',
    FILE_FORMAT = ParquetFormat
 );
GO

Napiwek

Aby uzyskać więcej informacji na temat używania tabel zewnętrznych, zobacz Używanie tabel zewnętrznych z usługą Synapse SQL w dokumentacji usługi Azure Synapse Analytics.