Ładowanie tabel przejściowych
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.