Načtení dat pomocí COPY INTO s dočasnými přihlašovacími údaji
Pokud váš cluster Azure Databricks nebo SQL Warehouse nemá oprávnění ke čtení zdrojových souborů, můžete pro přístup k datům z externího cloudového úložiště objektů použít dočasné přihlašovací údaje a načíst soubory do tabulky Delta Lake.
V závislosti na tom, jak vaše organizace spravuje zabezpečení cloudu, může být potřeba požádat správce cloudu nebo uživatele, aby vám poskytl přihlašovací údaje. Další informace najdete v tématu Generování dočasných přihlašovacích údajů pro příjem dat.
Zadání dočasných přihlašovacích údajů nebo možností šifrování pro přístup k datům
Poznámka:
Možnosti přihlašovacích údajů a šifrování jsou k dispozici ve službě Databricks Runtime 10.4 LTS a vyšší.
COPY INTO
podporuje:
- Tokeny Azure SAS pro čtení dat z ADLS Gen2 a Azure Blob Storage Dočasné tokeny služby Azure Blob Storage jsou na úrovni kontejneru, zatímco tokeny ADLS Gen2 mohou být kromě úrovně kontejneru i na úrovni adresáře. Databricks doporučuje používat tokeny SAS na úrovni adresáře, pokud je to možné. Token SAS musí mít oprávnění Číst, List a Oprávnění.
- Tokeny AWS STS pro čtení dat z AWS S3 Vaše tokeny by měly mít oprávnění "s3:GetObject*", "s3:ListBucket" a "s3:GetBucketLocation".
Upozorňující
Aby se zabránilo zneužití nebo vystavení dočasných přihlašovacích údajů, databricks doporučuje nastavit horizonty vypršení platnosti, které jsou pro dokončení úkolu dostatečně dlouhé.
COPY INTO
podporuje načítání šifrovaných dat z AWS S3. Pokud chcete načíst šifrovaná data, zadejte typ šifrování a klíč k dešifrování dat.
Načtení dat pomocí dočasných přihlašovacích údajů
Následující příklad načte data z S3 a ADLS Gen2 pomocí dočasných přihlašovacích údajů pro poskytnutí přístupu ke zdrojovým datům.
COPY INTO my_json_data
FROM 's3://my-bucket/jsonData' WITH (
CREDENTIAL (AWS_ACCESS_KEY = '...', AWS_SECRET_KEY = '...', AWS_SESSION_TOKEN = '...')
)
FILEFORMAT = JSON
COPY INTO my_json_data
FROM 'abfss://container@storageAccount.dfs.core.windows.net/jsonData' WITH (
CREDENTIAL (AZURE_SAS_TOKEN = '...')
)
FILEFORMAT = JSON
Načtení šifrovaných dat
Pomocí šifrovacích klíčů poskytovaných zákazníkem načte následující příklad data z S3.
COPY INTO my_json_data
FROM 's3://my-bucket/jsonData' WITH (
ENCRYPTION (TYPE = 'AWS_SSE_C', MASTER_KEY = '...')
)
FILEFORMAT = JSON
Načtení dat JSON pomocí přihlašovacích údajů pro zdroj a cíl
Následující příklad načte data JSON ze souboru v Azure do externí tabulky Delta s názvem my_json_data
.
Tuto tabulku je nutné vytvořit před COPY INTO
spuštěním.
Tento příkaz používá k zápisu do externí tabulky Delta jeden existující přihlašovací údaje a druhý pro čtení z umístění ABFSS.
COPY INTO my_json_data WITH (CREDENTIAL target_credential)
FROM 'abfss://container@storageAccount.dfs.core.windows.net/base/path' WITH (CREDENTIAL source_credential)
FILEFORMAT = JSON
FILES = ('f.json')