Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
Databricks SQL
Databricks Runtime
Ładuje dane z lokalizacji pliku do tabeli Delta. Jest to operacja z możliwością ponawiania i idempotentna. Pliki w lokalizacji źródłowej, które zostały już załadowane, są pomijane. Jest to prawdą, nawet jeśli pliki zostały zmodyfikowane od czasu ich załadowania.
Aby zapoznać się z przykładami, zobacz Typowe wzorce ładowania danych przy użyciu COPY INTO.
Składnia
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_tableIdentyfikuje istniejącą tabelę delty. target_table nie może zawierać specyfikacji czasowej ani opcji.
Jeśli nazwa tabeli jest podana w postaci lokalizacji, takiej jak:
delta.`/path/to/table`, Unity Catalog zarządza dostępem do lokalizacji, do których są zapisywane. Możesz zapisać w zewnętrznej lokalizacji, robiąc to tak:- Definiowanie lokalizacji jako lokalizacji zewnętrznej i posiadanie
WRITE FILESuprawnień do tej lokalizacji zewnętrznej. - Posiadanie
WRITE FILESuprawnień do nazwanego poświadczenia składowania, które zapewniają autoryzację do zapisu w lokalizacji przy użyciu:COPY INTO delta.`/some/location` WITH (CREDENTIAL <named-credential>)
Aby uzyskać więcej informacji, zobacz Połączenie z magazynem obiektów w chmurze przy użyciu Unity Catalog.
- Definiowanie lokalizacji jako lokalizacji zewnętrznej i posiadanie
BY POSITION| ( col_name [ , <col_name> ... ] )Dopasuj kolumny źródłowe do kolumn tabeli docelowej według pozycji porządkowej. Rzutowanie dopasowanych kolumn odbywa się automatycznie.
Ten parametr jest obsługiwany tylko w przypadku formatu pliku CSV bez nagłówka. Musisz określić wartość
FILEFORMAT = CSV. Należy również ustawićFORMAT_OPTIONSna("headers" = "false")(FORMAT_OPTIONS ("headers" = "false")jest wartością domyślną).Opcja składni 1:
BY POSITION- Automatycznie dopasuje kolumny źródłowe do kolumn tabeli docelowej według pozycji porządkowej.
- Domyślne dopasowanie nazw nie jest używane do porównywania.
- Kolumny
IDENTITYorazGENERATEDtabeli docelowej są ignorowane podczas dopasowywania do kolumn źródłowych. - Jeśli liczba kolumn źródłowych nie jest równa filtrowanej kolumnie tabeli docelowej,
COPY INTOzgłasza błąd.
Opcja składni 2:
( col_name [ , <col_name> ... ] )- Dopasuje kolumny źródłowe do określonych kolumn tabeli docelowej według względnej pozycji porządkowej przy użyciu listy nazw kolumn tabeli docelowej w nawiasach rozdzielonych przecinkami.
- Oryginalna kolejność kolumn tabeli i nazwy kolumn nie są używane do dopasowywania.
- Nie można określać kolumn
IDENTITYoraz kolumnGENERATEDna liście nazw kolumn, ponieważCOPY INTOzgłosi błąd. - Nie można zduplikować określonych kolumn.
- Gdy liczba kolumn źródłowych nie jest równa określonej kolumnie tabeli,
COPY INTOzgłasza błąd. - W przypadku kolumn, które nie są określone na liście nazw kolumn,
COPY INTOprzypisuje wartości domyślne, jeśli istnieją, i przypisujeNULLw przeciwnym razie. Jeśli żadna kolumna nie może zawierać wartości null,COPY INTOzgłasza błąd.
- Automatycznie dopasuje kolumny źródłowe do kolumn tabeli docelowej według pozycji porządkowej.
sourceLokalizacja pliku do załadowania danych. Pliki w tej lokalizacji muszą mieć format określony w pliku
FILEFORMAT. Lokalizacja jest udostępniana w postaci identyfikatora URI.Dostęp do lokalizacji źródłowej można zapewnić za pośrednictwem:
credential_nameOpcjonalna nazwa poświadczenia używanego do uzyskiwania dostępu do lokalizacji magazynu lub zapisywania do tej lokalizacji. To poświadczenie jest używane tylko wtedy, gdy lokalizacja pliku nie jest uwzględniona w lokalizacji zewnętrznej. Zobacz credential_name.
Wbudowane poświadczenia tymczasowe.
- Definiowanie lokalizacji jako zewnętrznej i posiadanie
READ FILESuprawnień do lokalizacji zewnętrznej za pośrednictwem Unity Catalog. - Używanie nazwanego poświadczenia dostępu do magazynu z uprawnieniami
READ FILES, które zapewniają autoryzację uprawniającą do odczytu danych z lokalizacji za pośrednictwem Unity Catalog.
Nie musisz podawać poświadczeń wbudowanych ani nazwanych, jeśli ścieżka jest już zdefiniowana jako lokalizacja zewnętrzna, której masz uprawnienia do użycia. Aby uzyskać więcej informacji, zobacz Omówienie lokalizacji zewnętrznych .
Uwaga
Jeśli ścieżka pliku źródłowego jest ścieżką główną, dodaj ukośnik (
/) na końcu ścieżki pliku, na przykłads3://my-bucket/.Zaakceptowane opcje poświadczeń to:
-
AZURE_SAS_TOKENdla usług ADLS i Azure Blob Storage -
AWS_ACCESS_KEY,AWS_SECRET_KEYiAWS_SESSION_TOKENdla platformy AWS S3
Zaakceptowane opcje szyfrowania to:
-
TYPE = 'AWS_SSE_C'iMASTER_KEYdla platformy AWS S3
Zobacz Ładowanie danych przy użyciu COPY INTO z poświadczeniami tymczasowymi.
SELECT expression_listWybiera określone kolumny lub wyrażenia z danych źródłowych przed skopiowaniem do tabeli delty. Wyrażenia mogą być dowolnymi, które używasz z instrukcjami
SELECT, w tym w operacjach okien. Wyrażeń agregacji można używać tylko dla agregacji globalnych — nie można stosowaćGROUP BYna kolumnach z tą składnią.FILEFORMAT = data_sourceFormat plików źródłowych do załadowania. Jeden z
CSV,JSON,AVRO,ORC,PARQUET,TEXT,BINARYFILE.VALIDATEDotyczy:
Databricks SQL
Databricks Runtime 10.4 LTS i nowszeDane, które mają zostać załadowane do tabeli, są weryfikowane, ale nie są zapisywane w tabeli. Te walidacje obejmują:
- Czy dane mogą być analizowane.
- Określa, czy schemat jest zgodny z tabelą, czy też schemat musi zostać rozwinięty.
- Czy są spełnione wszystkie ograniczenia dotyczące możliwości przechowywania wartości null i sprawdzania.
Wartością domyślną jest zweryfikowanie wszystkich danych, które mają zostać załadowane. Możesz podać liczbę wierszy do zweryfikowania za pomocą słowa kluczowego
ROWS, takiego jakVALIDATE 15 ROWS. InstrukcjaCOPY INTOzwraca podgląd danych z maksymalnie 50 wierszy, gdy zROWSsłowem kluczowym używa się liczby mniejszej niż 50.FILESLista nazw plików do załadowania z limitem 1000 plików. Nie można określić za pomocą
PATTERN.PATTERNWzorzec glob, który identyfikuje pliki do wczytania z katalogu źródłowego. Nie można określić za pomocą
FILES.Wzorzec opis ?Pasuje do dowolnego pojedynczego znaku *Dopasuje zero bądź więcej znaków [abc]Dopasuje pojedynczy znak z zestawu znaków {a,b,c}. [a-z]Dopasuje pojedynczy znak z zakresu znaków {a... z}. [^a]Dopasuje pojedynczy znak, który nie pochodzi z zestawu znaków lub zakresu {a}. Należy pamiętać, że ^znak musi występować natychmiast po prawej stronie nawiasu otwierającego.{ab,cd}Dopasuje ciąg z zestawu ciągów {ab, cd}. {ab,c{de, fh}}Dopasuje ciąg z zestawu ciągów {ab, cde, cfh}. FORMAT_OPTIONSOpcje, które mają zostać przekazane do czytnika źródła danych platformy Apache Spark dla określonego formatu. Zobacz Opcje formatowania dla każdego formatu pliku.
COPY_OPTIONSOpcje sterowania operacją
COPY INTOpolecenia.-
force: wartość logiczna, domyślnafalse. Jeśli ustawiono wartośćtrue, idempotencyjność jest wyłączona, a pliki są ładowane niezależnie od tego, czy zostały załadowane wcześniej. -
mergeSchema: wartość logiczna, domyślnafalse. Jeśli wartość jest ustawiona natrue, schemat można ewoluować zgodnie z danymi przychodzącymi.
-
Wywołaj COPY INTO równocześnie
COPY INTO obsługuje współbieżne wywołania względem tej samej tabeli. Tak długo, jak COPY INTO jest wywoływany współbieżnie w różnych zestawach plików wejściowych, każde wywołanie powinno ostatecznie zakończyć się powodzeniem, w przeciwnym razie występuje konflikt transakcji.
COPY INTO nie powinny być wywoływane współbieżnie w celu zwiększenia wydajności; Pojedyncze COPY INTO polecenie z wieloma plikami zwykle działa lepiej niż uruchamianie współbieżnych COPY INTO poleceń z jednym plikiem.
COPY INTO można wywoływać współbieżnie, gdy:
- Wielu producentów danych nie ma łatwego sposobu koordynowania i nie może utworzyć pojedynczego wywołania.
- W przypadku bardzo dużego katalogu można go przetwarzać po jednym podkatalogu na raz. Podczas pozyskiwania katalogów z bardzo dużą liczbą plików usługa Databricks zaleca korzystanie z Auto Loader, jeśli jest to możliwe.
Uzyskiwanie dostępu do metadanych pliku
Aby dowiedzieć się, jak uzyskać dostęp do metadanych dla źródeł danych opartych na plikach, zobacz Kolumna metadanych pliku.
Opcje formatowania
Aby uzyskać opcje specyficzne dla każdego formatu pliku (JSON, CSV, XML, Parquet, Avro, text, ORC i binary), zobacz Opcje elementu DataFrameReader.