Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks SQL
Databricks Runtime
Läser in data från en filplats till en Delta-tabell. Det här är en återförsöksbar och idempotent åtgärd. Filer på källplatsen som redan är inlästa utelämnas. Detta gäller även om filerna har ändrats sedan de lästes in.
Exempel finns i Vanliga datainläsningsmönster med hjälp av COPY INTO.
Syntax
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) ] ) ]
Parametrar
target_tableIdentifierar en befintlig Delta-tabell. Target_table får inte innehålla någon specifikation för tidsmässiga specifikationer eller alternativ.
Om tabellnamnet anges i form av en plats, till exempel:
delta.`/path/to/table`, kan Unity Catalog styra åtkomsten till de platser som skrivs till. Du kan skriva till en extern plats genom att:- Definiera platsen som en extern plats och ha
WRITE FILESbehörighet på den externa platsen. - Har
WRITE FILESbehörighet för en namngiven lagringsuppgift som tillåter att skriva till en plats med hjälp av:COPY INTO delta.`/some/location` WITH (CREDENTIAL <named-credential>)
Mer information finns i Ansluta till molnobjektlagring med Unity Catalog .
- Definiera platsen som en extern plats och ha
BY POSITION| ( col_name [ , <col_name> ... ] )Jämför källkolumner med kolumner i måltabellen efter ordningsposition. Typgjutning av de matchade kolumnerna görs automatiskt.
Den här parametern stöds endast för huvudlöst CSV-filformat. Du måste ange
FILEFORMAT = CSV.FORMAT_OPTIONSmåste också anges till("headers" = "false")(FORMAT_OPTIONS ("headers" = "false")är standardvärdet).Syntaxalternativ 1:
BY POSITION- Matchar ihop källkolumner med måltabellens kolumner efter ordningsposition automatiskt.
- Standardnamnmatchningen används inte för jämförelse.
-
IDENTITYkolumner ochGENERATEDkolumner i måltabellen ignoreras när de matchar källkolumnerna. - Om antalet källkolumner inte är lika med de filtrerade måltabellkolumnerna
COPY INTOgenererar ett fel.
Syntaxalternativ 2:
( col_name [ , <col_name> ... ] )- Matchar källkolumner med de angivna måltabellkolumnerna efter relativ ordningstalsposition med hjälp av en namnlista för måltabellkolumner inom parenteser, avgränsade med kommatecken.
- Den ursprungliga tabellkolumnordningen och kolumnnamnen används inte för matchning.
-
IDENTITYkolumner ochGENERATEDkolumner kan inte anges i listan med kolumnnamn, annarsCOPY INTOuppstår ett fel. - Det går inte att duplicera de angivna kolumnerna.
- När antalet källkolumner inte är lika med de angivna tabellkolumnerna uppstår
COPY INTOett fel. - För de kolumner som inte anges i kolumnnamnslistan tilldelar
COPY INTOeventuella standardvärden, och tilldelarNULLannars. Om någon kolumn inte är nullbar uppstårCOPY INTOett fel.
- Matchar ihop källkolumner med måltabellens kolumner efter ordningsposition automatiskt.
sourceFilplatsen som data ska läsas in från. Filer på den här platsen måste ha det format som anges i
FILEFORMAT. Platsen tillhandahålls i form av en URI.Åtkomst till källplatsen kan ges via:
credential_nameValfritt namn på de autentiseringsuppgifter som används för att komma åt eller skriva till lagringsplatsen. Du använder endast den här autentiseringsuppgiften om filplatsen inte ingår på en extern plats. Se credential_name.
Infogade tillfälliga autentiseringsuppgifter.
- Definiera källplatsen som en extern plats och ha
READ FILESbehörigheter på den externa platsen via Unity Catalog. - Att använda en namngiven lagringsreferens med
READ FILESbehörigheter som tillåter läsning från en plats via Unity Catalog.
Du behöver inte ange inbäddade eller namngivna autentiseringsuppgifter om platsen redan har definierats som en extern sökväg som du har behörighet att använda. Mer information finns i Översikt över externa platser .
Kommentar
Om källfilsökvägen är en rotsökväg lägger du till ett snedstreck (
/) i slutet av filsökvägen,s3://my-bucket/till exempel .Godkända alternativ för autentiseringsuppgifter är:
-
AZURE_SAS_TOKENför ADLS och Azure Blob Storage -
AWS_ACCESS_KEY,AWS_SECRET_KEYochAWS_SESSION_TOKENför AWS S3
Godkända krypteringsalternativ är:
-
TYPE = 'AWS_SSE_C', ochMASTER_KEYför AWS S3
Se Ladda data med COPY INTO med tillfälliga inloggningsuppgifter.
SELECT expression_listVäljer de angivna kolumnerna eller uttrycken från källdata innan du kopierar till Delta-tabellen. Uttrycken kan vara allt du använder med
SELECT-instruktioner, inklusive fönsteråtgärder. Du kan bara använda aggregeringsuttryck för globala aggregeringar. Du kan inteGROUP BYanvända kolumner med den här syntaxen.FILEFORMAT = data_sourceFormatet för källfilerna som ska läsas in. En av
CSV,JSON,AVRO,ORC,PARQUET,TEXT,BINARYFILE.VALIDATEGäller för:
Databricks SQL
Databricks Runtime 10.4 LTS och senareDe data som ska läsas in i en tabell verifieras men skrivs inte till tabellen. Dessa valideringar omfattar:
- Om data kan parsas.
- Om schemat matchar tabellens eller om schemat behöver utvecklas.
- Om alla null- och kontrollvillkor är uppfyllda.
Standardvärdet är att verifiera alla data som ska läsas in. Du kan ange ett antal rader som ska verifieras med nyckelordet
ROWS, till exempelVALIDATE 15 ROWS. InstruktionenCOPY INTOreturnerar en förhandsgranskning av data på 50 rader eller mindre när ett antal mindre än 50 används med nyckelordetROWS).FILESEn lista över filnamn som ska läsas in med en gräns på 1 000 filer. Det går inte att ange med
PATTERN.PATTERNEtt globmönster som identifierar de filer som ska läsas in från källkatalogen. Det går inte att ange med
FILES.Mönster beskrivning ?Matchar ett enskilt tecken *Matchar noll eller fler tecken [abc]Matchar ett enskilt tecken från teckenuppsättningen {a,b,c}. [a-z]Matchar ett enskilt tecken från teckenområdet {a... z}. [^a]Matchar ett enskilt tecken som inte kommer från teckenuppsättningen eller intervallet {a}. Observera att ^tecken måste förekomma omedelbart till höger om den inledande hakparentesen.{ab,cd}Matchar en sträng från stränguppsättningen {ab, cd}. {ab,c{de, fh}}Matchar en sträng från stränguppsättningen {ab, cde, cfh}. FORMAT_OPTIONSAlternativ som ska skickas till Apache Spark-datakällans läsare för det angivna formatet. Se Formatalternativ för varje filformat.
COPY_OPTIONSAlternativ för att styra kommandots
COPY INTOfunktion.-
force: boolesk, standardvärdefalse. Om värdettrueär inaktiverat inaktiveras idempotens och filer läses in oavsett om de har lästs in tidigare. -
mergeSchema: boolesk, standardvärdefalse. Om det är inställt påtruekan schemat utvecklas enligt inkommande data.
-
Anropa COPY INTO samtidigt
COPY INTO stöder samtidiga anrop mot samma tabell. Så länge som COPY INTO anropas samtidigt på distinkta uppsättningar med indatafiler bör varje anrop så småningom lyckas, annars får du en transaktionskonflikt.
COPY INTO bör inte anropas samtidigt för att förbättra prestandan. ett enda COPY INTO kommando med flera filer presterar vanligtvis bättre än att köra samtidiga COPY INTO kommandon med en enda fil vardera.
COPY INTO kan anropas samtidigt när:
- Flera dataproducenter har inte ett enkelt sätt att samordna och kan inte göra ett enda anrop.
- När en mycket stor katalog kan bearbetas del för del, underkatalog för underkatalog. När du matar in kataloger med ett mycket stort antal filer rekommenderar Databricks att du använder Auto Loader när det är möjligt.
Komma åt filens metadata
Information om hur du kommer åt metadata för filbaserade datakällor finns i kolumnen Filmetadata.
Formatalternativ
Alternativ som är specifika för varje filformat (JSON, CSV, XML, Parquet, Avro, text, ORC och binär fil) finns i DataFrameReader-alternativ.