Sdílet prostřednictvím


Načtení dat pomocí funkce 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')