Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks SQL
Databricks Runtime
Načte data ze specifikovaného umístění souboru do tabulky Delta. Jedná se o opakovatelnou a idempotentní operaci. Soubory ve zdrojovém umístění, které již byly načteny, se přeskočí. To platí i v případě, že byly soubory od jejich načtení změněny.
Příklady naleznete v části běžné vzory načítání dat pomocí COPY INTO.
Syntaxe
COPY INTO target_table [ BY POSITION | ( col_name [ , <col_name> ... ] ) ]
FROM { source_clause |
( SELECT expression_list FROM source_clause ) }
FILEFORMAT = data_source
[ VALIDATE [ ALL | num_rows ROWS ] ]
[ FILES = ( file_name [, ...] ) | PATTERN = glob_pattern ]
[ FORMAT_OPTIONS ( { data_source_reader_option = value } [, ...] ) ]
[ COPY_OPTIONS ( { copy_option = value } [, ...] ) ]
source_clause
source [ WITH ( [ CREDENTIAL { credential_name |
(temporary_credential_options) } ]
[ ENCRYPTION (encryption_options) ] ) ]
Parametry
target_tableIdentifikuje existující tabulku Delta. Tabulka target_table nesmí obsahovat ani časovou specifikaci ani specifikaci možností.
Pokud je název tabulky zadaný ve formě umístění, například
delta.`/path/to/table`, Katalog Unity může řídit přístup k umístěním, do kterých se zapisuje. Do externího umístění můžete zapisovat pomocí:- Definujte umístění jako externí umístění a mít
WRITE FILESoprávnění k tomu externímu umístění. - Mít oprávnění
WRITE FILESk pojmenovanému přístupovému údaji úložiště pro poskytnutí autorizace k zápisu do umístění pomocí:COPY INTO delta.`/some/location` WITH (CREDENTIAL <named-credential>)
Další podrobnosti najdete v tématu Připojení ke cloudovému úložišti objektů pomocí katalogu Unity .
- Definujte umístění jako externí umístění a mít
BY POSITION| ( col_name [ , <col_name> ... ] )Porovná zdrojové sloupce s cílovými sloupci tabulky podle řadové pozice. Typová konverze u odpovídajících sloupců se provádí automaticky.
Tento parametr je podporován pouze pro formát souboru CSV bez záhlaví. Je nutné zadat
FILEFORMAT = CSV.FORMAT_OPTIONSmusí být také nastavena na("headers" = "false")(FORMAT_OPTIONS ("headers" = "false")je výchozí).Možnost syntaxe 1:
BY POSITION- Porovná zdrojové sloupce s cílovými sloupci tabulky podle pořadí automaticky.
- Pro porovnávání se nepoužívá výchozí shoda názvů.
-
IDENTITYsloupce aGENERATEDsloupce cílové tabulky se při porovnávání zdrojových sloupců ignorují. - Pokud se počet zdrojových sloupců nerovná filtrovaným cílovým sloupcům tabulky,
COPY INTOvyvolá chybu.
Možnost syntaxe 2:
( col_name [ , <col_name> ... ] )- Porovná zdrojové sloupce se zadanými cílovými sloupci tabulky podle relativního pořadového umístění pomocí seznamu názvů cílových sloupců tabulky v závorkách oddělených čárkami.
- Původní pořadí sloupců tabulky a názvy sloupců se pro porovnávání nepoužívají.
-
IDENTITYsloupce aGENERATEDsloupce nelze zadat v seznamu názvů sloupců, jinakCOPY INTOvyvolá chybu. - Zadané sloupce nelze duplikovat.
- Pokud se počet zdrojových sloupců nerovná zadaným sloupcům tabulky,
COPY INTOvyvolá chybu. - Pro sloupce, které nejsou zadány v seznamu názvů sloupců,
COPY INTOpřiřadí výchozí hodnoty, pokud existují, a přiřadíNULLjinak. Pokud některý sloupec nemá hodnotu null,COPY INTOvyvolá chybu.
- Porovná zdrojové sloupce s cílovými sloupci tabulky podle pořadí automaticky.
sourceUmístění souboru, ze které se mají načíst data. Soubory v tomto umístění musí mít formát zadaný v
FILEFORMAT. Umístění je k dispozici ve formě identifikátoru URI.Přístup ke zdrojovému umístění lze poskytnout prostřednictvím:
credential_nameVolitelný název přihlašovacích údajů, které se používají pro přístup k úložnému umístění nebo pro zápis do něj. Tyto přihlašovací údaje použijete jenom v případě, že umístění souboru není součástí externího umístění. Viz credential_name.
Vložené dočasné přihlašovací údaje.
- Definování zdrojového umístění jako externího umístění a mít oprávnění
READ FILESk externímu umístění prostřednictvím Unity Catalogu. - Použití pojmenovaných přihlašovacích údajů k úložišti s oprávněními
READ FILES, která poskytují autorizaci ke čtení z umístění prostřednictvím katalogu Unity.
Pokud je cesta už definovaná jako externí umístění, které máte oprávnění používat, nemusíte zadávat vložené ani pojmenované přihlašovací údaje. Další podrobnosti najdete v přehledu externích umístění .
Poznámka:
Pokud je cesta ke zdrojovému souboru kořenovou cestou, přidejte lomítko (
/) na konec cesty k souboru,s3://my-bucket/například .Mezi akceptované možnosti přihlašovacích údajů patří:
-
AZURE_SAS_TOKENpro ADLS a úložiště Azure Blob -
AWS_ACCESS_KEY,AWS_SECRET_KEYaAWS_SESSION_TOKENpro AWS S3
Akceptované možnosti šifrování jsou:
-
TYPE = 'AWS_SSE_C'aMASTER_KEYpro AWS S3
Viz Načtení dat pomocí COPY INTO s dočasnými přihlašovacími údaji.
SELECT expression_listPřed zkopírováním do tabulky Delta vybere zadané sloupce nebo výrazy ze zdrojových dat. Výrazy mohou být cokoliv, co používáte s výrazy
SELECT, včetně operací s okny. Agregační výrazy můžete použít pouze pro globální agregace – u sloupců s touto syntaxí se nedáGROUP BYpoužít.FILEFORMAT = data_sourceFormát zdrojových souborů, které se mají načíst. Jeden z
CSV,JSON,AVRO,ORC,PARQUET,TEXT,BINARYFILE.VALIDATEPlatí pro:
Databricks SQL
Databricks Runtime 10.4 LTS a vyššíData, která se mají načíst do tabulky, se ověřují, ale nezapisují se do tabulky. Mezi tato ověření patří:
- Určuje, jestli se data dají analyzovat.
- Ať už schéma odpovídá tabulce, nebo jestli je potřeba schéma vyvíjet.
- Zda jsou splněna všechna omezení nullovosti a kontrolní podmínky.
Výchozí možností je ověřit všechna data, která se mají načíst. Pomocí klíčového
ROWSslova můžete zadat několik řádků, které se mají ověřit, napříkladVALIDATE 15 ROWS. PříkazCOPY INTOvrátí náhled dat o 50 řádcích nebo méně, pokud se s klíčovým slovemROWSpoužije číslo menší než 50).FILESSeznam názvů souborů, které se mají načíst, s limitem 1 000 souborů. Nelze zadat pomocí parametru
PATTERN.PATTERNVzor globu, který identifikuje soubory, které se mají načíst ze zdrojového adresáře. Nelze zadat pomocí parametru
FILES.Vzor Popis ?Odpovídá jakémukoli jednomu znaku. *Odpovídá nule nebo více znaků [abc]Odpovídá jednomu znaku ze znakové sady {a,b,c}. [a-z]Odpovídá jednomu znaku z rozsahu znaků {a... z}. [^a]Odpovídá jednomu znaku, který není ze znakové sady nebo rozsahu {a}. Všimněte si, že ^znak musí nastat okamžitě napravo od levé závorky.{ab,cd}Odpovídá řetězci ze sady řetězců {ab, cd}. {ab,c{de, fh}}Odpovídá řetězci ze sady řetězců {ab, cde, cfh}. FORMAT_OPTIONSMožnosti, které se mají předat čtenáři zdroje dat Apache Sparku pro zadaný formát Viz Možnosti formátování pro každý formát souboru.
COPY_OPTIONSMožnosti řízení operace
COPY INTOpříkazu-
force: logická hodnota, výchozífalse. Pokud je nastavená hodnotatrue, idempotence je zakázaná a soubory se načtou bez ohledu na to, jestli byly načteny dříve. -
mergeSchema: logická hodnota, výchozífalse. Pokud je nastavená hodnotatrue, schéma se může vyvíjet podle příchozích dat.
-
Vyvolejte souběžně COPY INTO
COPY INTO podporuje souběžné vyvolání ve stejné tabulce.
COPY INTO Pokud je vyvolána souběžně u různých sad vstupních souborů, každé vyvolání by nakonec mělo proběhnout úspěšně, jinak dojde ke konfliktu transakcí.
COPY INTO by nemělo být vyvoláno souběžně za účelem zlepšení výkonu; Jeden COPY INTO příkaz s více soubory obvykle funguje lépe než spouštění souběžných COPY INTO příkazů s jedním souborem.
COPY INTO lze volat souběžně, pokud:
- Několik výrobců dat nemá snadný způsob, jak koordinovat a nemůže provést jediné vyvolání.
- Když lze velmi velký adresář zpracovat po částech podle podadresářů. Při ingestování adresářů s velkým počtem souborů doporučuje Databricks používat Auto Loader, pokud je to možné.
Přístupová metadata souborů
Informace o přístupu k metadatům pro souborové zdroje dat najdete ve sloupci Metadata souboru.
Možnosti formátu
Možnosti specifické pro každý formát souboru (JSON, CSV, XML, Parquet, Avro, text, ORC a binární soubor) najdete v tématu Možnosti DataFrameReader.