Načtení dat z Azure Data Lake Storage do vyhrazených fondů SQL ve službě Azure Synapse Analytics
Tato příručka popisuje, jak pomocí příkazu COPY načíst data z Azure Data Lake Storage. Rychlé příklady použití příkazu COPY ve všech metodách ověřování najdete v následující dokumentaci: Bezpečné načtení dat pomocí vyhrazených fondů SQL.
Poznámka:
Pokud chcete poskytnout zpětnou vazbu nebo nahlásit problémy s příkazem COPY, odešlete e-mail na následující distribuční seznam: sqldwcopypreview@service.microsoft.com.
- Vytvořte cílovou tabulku pro načtení dat z Azure Data Lake Storage.
- Vytvořte příkaz COPY pro načtení dat do datového skladu.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Než začnete
Než začnete s tímto kurzem, stáhněte a nainstalujte nejnovější verzi aplikace SQL Server Management Studio (SSMS).
Ke spuštění tohoto kurzu potřebujete:
- Vyhrazený fond SQL. Viz Vytvoření vyhrazeného fondu SQL a dotazování dat.
- Účet Data Lake Storage. Viz Začínáme se službou Azure Data Lake Storage. Pro tento účet úložiště budete muset nakonfigurovat nebo zadat jednu z následujících přihlašovacích údajů, která se má načíst: klíč účtu úložiště, klíč sdíleného přístupového podpisu (SAS), uživatel aplikace Azure Directory nebo uživatel Microsoft Entra, který má pro účet úložiště příslušnou roli Azure.
- V současné době ingestování dat pomocí příkazu COPY do účtu služby Azure Storage, který používá novou funkci oddílu DNS služby Azure Storage, způsobí chybu. Zřízení účtu úložiště v předplatném, které pro účely tohoto kurzu nepoužívá dělení DNS
Vytvoření cílové tabulky
Připojte se k vyhrazenému fondu SQL a vytvořte cílovou tabulku, do které se načtete. V tomto příkladu vytváříme tabulku dimenzí produktu.
-- A: Create the target table
-- DimProduct
CREATE TABLE [dbo].[DimProduct]
(
[ProductKey] [int] NOT NULL,
[ProductLabel] [nvarchar](255) NULL,
[ProductName] [nvarchar](500) NULL
)
WITH
(
DISTRIBUTION = HASH([ProductKey]),
CLUSTERED COLUMNSTORE INDEX
--HEAP
);
Vytvoření příkazu COPY
Připojte se k vyhrazenému fondu SQL a spusťte příkaz COPY. Úplný seznam příkladů najdete v následující dokumentaci: Bezpečné načtení dat pomocí vyhrazených fondů SQL.
-- B: Create and execute the COPY statement
COPY INTO [dbo].[DimProduct]
--The column list allows you map, omit, or reorder input file columns to target table columns.
--You can also specify the default value when there is a NULL value in the file.
--When the column list is not specified, columns will be mapped based on source and target ordinality
(
ProductKey default -1 1,
ProductLabel default 'myStringDefaultWhenNull' 2,
ProductName default 'myStringDefaultWhenNull' 3
)
--The storage account location where you data is staged
FROM 'https://storageaccount.blob.core.windows.net/container/directory/'
WITH
(
--CREDENTIAL: Specifies the authentication method and credential access your storage account
CREDENTIAL = (IDENTITY = '', SECRET = ''),
--FILE_TYPE: Specifies the file type in your storage account location
FILE_TYPE = 'CSV',
--FIELD_TERMINATOR: Marks the end of each field (column) in a delimited text (CSV) file
FIELDTERMINATOR = '|',
--ROWTERMINATOR: Marks the end of a record in the file
ROWTERMINATOR = '0x0A',
--FIELDQUOTE: Specifies the delimiter for data of type string in a delimited text (CSV) file
FIELDQUOTE = '',
ENCODING = 'UTF8',
DATEFORMAT = 'ymd',
--MAXERRORS: Maximum number of reject rows allowed in the load before the COPY operation is canceled
MAXERRORS = 10,
--ERRORFILE: Specifies the directory where the rejected rows and the corresponding error reason should be written
ERRORFILE = '/errorsfolder',
) OPTION (LABEL = 'COPY: ADLS tutorial');
Optimalizace komprese columnstore
Ve výchozím nastavení jsou tabulky definované jako clusterovaný index columnstore. Po dokončení načtení nemusí být některé řádky dat komprimovány do columnstore. Existuje řada důvodů, proč k tomu může dojít. Další informace najdete v tématu správa indexů columnstore.
Pokud chcete optimalizovat výkon dotazů a kompresi columnstore po načtení, znovu sestavte tabulku, aby index columnstore zkomprimuje všechny řádky.
ALTER INDEX ALL ON [dbo].[DimProduct] REBUILD;
Optimalizace statistiky
Nejlepší je vytvořit statistiky s jedním sloupcem hned po načtení. Statistika má několik možností. Pokud například pro každý sloupec vytvoříte statistiku s jedním sloupcem, může trvat dlouhou dobu, než se všechny statistiky znovu sestaví. Pokud víte, že určité sloupce nebudou v predikátech dotazů, můžete přeskočit vytváření statistik pro tyto sloupce.
Pokud se rozhodnete vytvořit statistiky s jedním sloupcem pro každý sloupec každé tabulky, můžete použít vzorový kód prc_sqldw_create_stats
uložené procedury v článku statistiky .
Následující příklad je dobrým výchozím bodem pro vytváření statistik. Vytvoří statistiku s jedním sloupcem pro každý sloupec v tabulce dimenzí a na každém spojovacím sloupci v tabulkách faktů. Statistiky s jedním nebo více sloupci můžete kdykoli později přidat do jiných sloupců tabulky faktů.
Úspěch byl odemknut!
Úspěšně jste načetli data do datového skladu. Skvělá práce!
Další kroky
Načítání dat je prvním krokem při vývoji řešení datového skladu pomocí Azure Synapse Analytics. Projděte si naše vývojové materiály.
Další příklady a odkazy pro načítání najdete v následující dokumentaci: