複製到

適用於:檢查標記是的”src=磚的SQL檢查標記是的”src=磚運行時

將數據從文件位置加載到三角洲表。這是一個retriable和冪等operation-files已經加載的源位置跳過。有關示例,請參見常見的數據加載模式使用副本

語法

從{複製到target_table source_clause |(從source_clause選擇expression_list)} FILEFORMAT = data_source[驗證[所有| num_rows行]][文件= (file_name [,……])|模式= glob_pattern] [FORMAT_OPTIONS ({data_source_reader_option =價值},……])][COPY_OPTIONS ({copy_option =價值},…])]源_clause source [ WITH ( [ CREDENTIAL { credential_name | (temporary_credential_options) } ] [ ENCRYPTION (encryption_options) ] ) ]

參數

  • target_table

    識別現有的差值表。的target_table必須不包括時間規範

    如果表名稱的形式提供了一個位置,如:delta. /道路/ /表的、統一目錄管理可以訪問的位置被寫入。你可以寫一個外部位置:

    • 定義位置作為外部位置和擁有文件權限,外部的位置。

    • 文件命名存儲憑證,提供授權權限寫入一個位置使用:複製delta. /一些/位置的(證書<命名憑據>)

    看到管理外部位置和存儲憑證為更多的細節。

  • 加載的數據文件位置。文件在這個位置必須在指定的格式FILEFORMAT。位置是一個URI的形式提供的。

    訪問源位置可以提供:

    • credential_name

      可選的名字證書用於訪問存儲位置或寫。你用這個證書隻有在文件不包括在一個位置外部位置

    • 內聯臨時憑證。

    • 定義源位置作為外部位置和擁有文件外部位置通過統一目錄的權限。

    • 使用一個命名存儲憑證文件權限,提供授權閱讀從一個位置到統一目錄。

    你不需要提供內聯或命名憑據如果路徑已經定義為外部位置有權限使用。看到管理外部位置和存儲憑證為更多的細節。

    請注意

    如果源文件路徑是一個根路徑,請添加一個斜杠(/)的文件路徑,例如,s3: / /桶/

    接受憑證選項:

    • AWS_ACCESS_KEY,AWS_SECRET_KEY,AWS_SESSION_TOKEN在AWS S3

    • AZURE_SAS_TOKENADLS Gen2和Azure Blob存儲

    接受加密選項:

    • 類型=“AWS_SSE_C”,MASTER_KEY在AWS S3

看到加載數據用拷貝到臨時憑證

  • 選擇expression_list

    選擇指定的列或表達式之前從源數據複製到三角洲表中。你使用的表達式可以是任何東西選擇報表,包括窗口操作。你隻可以使用聚合表達式為全球aggregates-you不能集團通過列上的語法。

  • FILEFORMAT = data_source

    加載源文件的格式。之一CSV,JSON,AVRO,獸人,拚花,文本,BINARYFILE

  • 驗證

    適用於:檢查標記是的”src=磚的SQL檢查標記是的”src=磚運行時10.3及以上

    被加載到一個表的數據是驗證但不是寫入表中。這些驗證包括:

    • 是否可以解析數據。

    • 表的模式匹配,或者是否需要進化的模式。

    • 是否所有nullability和檢查約束。

    默認是驗證所有數據的加載。您可以提供一個被認可的的行數關鍵字,如驗證15。的複製語句返回的預覽數據50行或更少,當使用小於50的數量關鍵字)。

  • 文件

    一個文件名列表加載,長度達1000。不能指定模式

  • 模式

    一團模式識別源目錄的文件加載。不能指定文件

    模式

    描述

    嗎?

    匹配任何單個的字符

    *

    匹配零個或多個字符

    (美國廣播公司)

    匹配一個字符的字符集{a, b, c}。

    的[a -ž]

    匹配一個字符的字符範圍{…z}。

    (^)

    匹配一個字符不是字符集或距離{}。請注意,^字符必須立即出現右邊的支架。

    {ab、cd}

    匹配字符串的字符串集{ab、cd}。

    {ab, c{德,跳頻}}

    匹配字符串的字符串集{ab, cde, cfh}。

  • FORMAT_OPTIONS

    選項傳遞到Apache火花數據源讀者為指定的格式。看到格式選項為每個文件格式。

  • COPY_OPTIONS

    選擇控製的操作複製命令。

    • :布爾,默認。如果設置為真正的禁用,冪等性和文件加載不管他們之前已經加載。

    • mergeSchema:布爾,默認。如果設置為真正的,可以進化模式根據傳入的數據。

同時調用拷貝到

複製支持並發調用相同的表。隻要複製同時在調用截然不同的組輸入文件,每次調用最終會成功,否則你會得到一個事務衝突。複製不應調用並發來提高性能;一個單一的複製命令有多個文件通常執行比並發運行複製命令與單個文件。複製可以同時調用時:

  • 多個數據生產者沒有一個簡單的方法來協調,不能讓一個調用。

  • 當一個非常大的目錄可攝入子目錄的子目錄。當攝入與大量的目錄文件,磚推薦使用自動加載程序在可能的情況下。

訪問文件元數據

學習如何訪問元數據文件的數據來源,明白了文件元數據列

格式選項

通用選項

以下選項適用於所有文件格式。

選項

ignoreCorruptFiles

類型:布爾

是否忽略腐敗文件。如果這是真的,火花的工作將繼續運行,當遇到損壞文件和已讀過的內容仍將返回。可見,numSkippedCorruptFilesoperationMetrics列的三角洲湖曆史。在磚運行時11.0及以上。

默認值:

ignoreMissingFiles

類型:布爾

是否忽略丟失的文件。如果這是真的,火花的工作將繼續運行,當遇到丟失的文件和內容閱讀仍將返回。在磚運行時11.0及以上。

默認值:(真正的複製)

modifiedAfter

類型:時間戳字符串例如,2021-01-0100:00:00.000000UTC + 0

一個可選的時間戳來攝取文件修改時間戳後提供時間戳。

默認值:無

modifiedBefore

類型:時間戳字符串例如,2021-01-0100:00:00.000000UTC + 0

一個可選的時間戳來攝取文件修改時間戳之前提供的時間戳。

默認值:無

pathGlobFilterfileNamePattern

類型:字符串

一個潛在的水珠模式提供選擇文件。相當於模式複製fileNamePattern可以用在read_file

默認值:無

recursiveFileLookup

類型:布爾

是否加載數據基地內遞歸目錄和跳過分區推斷。

默認值:

JSON選項

選項

allowBackslashEscapingAnyCharacter

類型:布爾

是否允許反斜杠轉義字符的任何成功。如果未啟用,隻有那些顯式列出字符由JSON規範可以逃脫。

默認值:

allowComments

類型:布爾

是否允許使用Java, C和c++風格的評論(' / ',‘*’,' / / '品種)在解析內容。

默認值:

allowNonNumericNumbers

類型:布爾

是否允許的集合不是一個數字()令牌作為法定數量浮動值。

默認值:真正的

allowNumericLeadingZeros

類型:布爾

是否允許積分數字開始額外(循環)0(例如,000001)。

默認值:

allowSingleQuotes

類型:布爾

是否允許使用單引號(撇號,性格“\”)引用字符串(字符串名稱和值)。

默認值:真正的

allowUnquotedControlChars

類型:布爾

是否允許JSON字符串包含保有的控製字符(ASCII字符值小於32,包括選項卡並換行字符)。

默認值:

allowUnquotedFieldNames

類型:布爾

是否允許使用非掛牌字段名稱(允許JavaScript,但不是通過JSON規範)。

默認值:

badRecordsPath

類型:字符串

存儲文件的路徑記錄壞JSON的信息記錄。

默認值:無

columnNameOfCorruptRecord

類型:字符串

列存儲記錄,是畸形的,不能被解析。如果模式解析設置DROPMALFORMED,本專欄將是空的。

默認值:_corrupt_record

dateFormat

類型:字符串

解析日期的格式字符串。

默認值:yyyy-MM-dd

dropFieldIfAllNull

類型:布爾

是否要忽略所有空值的列或空數組和結構體在模式推理。

默認值:

編碼字符集

類型:字符串

JSON編碼的文件的名稱。看到charset選項列表。你不能使用utf - 16utf - 32多行真正的

默認值:utf - 8

inferTimestamp

類型:布爾

是否嚐試推斷作為時間戳字符串TimestampType。當設置為真正的、模式推理明顯可能需要更長時間。您必須啟用cloudFiles.inferColumnTypes使用自動加載程序。

默認值:

lineSep

類型:字符串

兩個連續的JSON記錄之間的字符串。

默認值:沒有,涵蓋r \,\ r \ n,\ n

語言環境

類型:字符串

一個java.util.Locale標識符。影響默認日期、時間戳和十進製解析JSON。

默認值:我們

模式

類型:字符串

解析器模式在處理畸形的記錄。之一“寬容”,“DROPMALFORMED”,或“FAILFAST”

默認值:寬容的

多行

類型:布爾

JSON記錄是否跨越多個行。

默認值:

prefersDecimal

類型:布爾

試圖推斷出字符串DecimalType而不是浮點數和雙精度類型。您還必須使用模式推理,通過啟用inferSchema或使用cloudFiles.inferColumnTypes自動加載程序。

默認值:

primitivesAsString

類型:布爾

是否要推斷數字和布爾值等基本類型StringType

默認值:

rescuedDataColumn

類型:字符串

是否收集所有的數據不能被解析由於模式數據類型不匹配或不匹配(包括列套管)到一個單獨的列中。這一列包含在默認情況下使用時自動加載程序。有關更多細節,請參考獲救的數據列是什麼?

默認值:無

timestampFormat

類型:字符串

解析時間戳的格式字符串。

默認值:yyyy-MM-dd 'HH: mm: ss [.SSS] [XXX]

時區

類型:字符串

java.time.ZoneId解析時使用時間戳和日期。

默認值:無

CSV選項

選項

badRecordsPath

類型:字符串

存儲文件的路徑記錄壞CSV信息記錄。

默認值:無

charToEscapeQuoteEscaping

類型:字符

使用的用來逃避字符轉義引號。例如,對於以下記錄:(\ \ ",b]:

  • 如果字符逃離“\”未定義時,記錄不會被解析。解析器會讀取字符:[一],[\],["],[,],[]、[b]拋出一個錯誤,因為它找不到關閉報價。

  • 如果字符逃離“\”被定義為“\”記錄將被讀取2的值:[一個\][b]

默認值:' \ 0

columnNameOfCorruptRecord

類型:字符串

一列來存儲記錄畸形,不能被解析。如果模式解析設置DROPMALFORMED,本專欄將是空的。

默認值:_corrupt_record

評論

類型:字符

定義了字符代表一行評論時發現一行文本的開始。使用' \ 0禁用不發表評論。

默認值:“\ u0000”

dateFormat

類型:字符串

解析日期的格式字符串。

默認值:yyyy-MM-dd

emptyValue

類型:字符串

空值的字符串表示。

默認值:”“

編碼字符集

類型:字符串

CSV文件的編碼的名稱。看到charset選項列表中。utf - 16utf - 32時不能使用多行真正的

默認值:utf - 8

enforceSchema

類型:布爾

是否強行指定或推斷模式應用到CSV文件。如果啟用了選擇,CSV文件的標題將被忽略。這個選項默認是忽略了在使用自動加載程序來拯救數據並允許模式演化。

默認值:真正的

逃避

類型:字符

解析數據時使用的轉義字符。

默認值:“\”

類型:布爾

CSV文件是否包含一個頭。自動加載程序假設推斷模式時文件頭。

默認值:

ignoreLeadingWhiteSpace

類型:布爾

是否忽略主要空白每個解析值。

默認值:

ignoreTrailingWhiteSpace

類型:布爾

是否忽略尾隨的空格為每個解析值。

默認值:

inferSchema

類型:布爾

是否來推斷的數據類型解析CSV或假設所有列的記錄StringType。需要一個額外的如果設置在數據傳遞給真正的。自動加載程序,使用cloudFiles.inferColumnTypes代替。

默認值:

lineSep

類型:字符串

兩個連續的CSV記錄之間的字符串。

默認值:沒有,涵蓋r \,\ r \ n,\ n

語言環境

類型:字符串

一個java.util.Locale標識符。影響默認日期、時間戳和小數解析CSV。

默認值:我們

maxCharsPerColumn

類型:Int

最大數量的角色期望從一個值來解析。可以用來避免內存錯誤。默認為1,這意味著無限的。

默認值:1

maxColumns

類型:Int

有多少列的硬限製記錄。

默認值:20480年

mergeSchema

類型:布爾

是否來推斷模式跨多個文件和每個文件的合並模式。默認啟用推斷模式時自動加載程序。

默認值:

模式

類型:字符串

解析器模式在處理畸形的記錄。之一“寬容”,“DROPMALFORMED”,“FAILFAST”

默認值:寬容的

多行

類型:布爾

CSV檔案是否跨越多個行。

默認值:

nanValue

類型:字符串

當解析non-a-number值的字符串表示FloatType倍增式列。

默認值:“南”

negativeInf

類型:字符串

當解析的字符串表示負無窮FloatType倍增式列。

默認值:“負”

nullValue

類型:字符串

空值的字符串表示。

默認值:”“

parserCaseSensitive(棄用)

類型:布爾

在閱讀文件,是否對齊列的標題模式中聲明的情況下敏感。這是真正的默認為自動加載程序。列情況下將獲救的差異rescuedDataColumn如果啟用。這個選項已經被棄用的readerCaseSensitive

默認值:

positiveInf

類型:字符串

當解析的字符串表示正無窮FloatType倍增式列。

默認值:“正”

preferDate

類型:布爾

試圖推斷出字符串作為日期的時間戳。您還必須使用模式推理,通過啟用inferSchema或使用cloudFiles.inferColumnTypes自動加載程序。

默認值:真正的

報價

類型:字符

使用的字符轉義值字段分隔符的值。

默認值:

readerCaseSensitive

類型:布爾

當指定大小寫敏感性行為rescuedDataColumn啟用。如果這是真的,拯救數據列的名字的情況下不同模式;否則,以不區分大小寫的方式讀取數據。

默認值:真正的

rescuedDataColumn

類型:字符串

是否收集所有數據不能被解析由於:一個數據類型不匹配,不匹配和模式(包括列套管)到一個單獨的列中。這一列包含在默認情況下使用時自動加載程序。更多細節請參考獲救的數據列是什麼?

默認值:無

9月分隔符

類型:字符串

列之間的分隔符字符串。

默認值:”、“

skipRows

類型:Int

的行數從一開始就應該被忽略的CSV文件(包括注釋和空行)。如果是真的,標題將第一unskipped和注釋行。

默認值:0

timestampFormat

類型:字符串

解析時間戳的格式字符串。

默認值:yyyy-MM-dd 'HH: mm: ss [.SSS] [XXX]

時區

類型:字符串

java.time.ZoneId解析時使用時間戳和日期。

默認值:無

unescapedQuoteHandling

類型:字符串

策略來處理非轉義引號。允許選擇:

  • STOP_AT_CLOSING_QUOTE:如果保有的報價在輸入,積累援引性格和價值進行解析的引用值,直到找到關閉報價。

  • BACK_TO_DELIMITER:如果保有的報價在輸入,考慮到價值作為非上市價值。這將使當前的解析值的解析器積累所有字符直到定義的分隔符9月是發現。如果沒有找到分隔符的值,解析器將繼續積累從輸入直到分隔符或行結束字符。

  • STOP_AT_DELIMITER:如果保有的報價在輸入,考慮到價值作為非上市價值。這將使解析器積累所有字符直到定義的分隔符9月或發現一行結束輸入。

  • SKIP_VALUE:輸入,如果找到保有的報價的內容解析給定的值將被忽略(直到找到下一個分隔符)和價值nullValue將會產生。

  • RAISE_ERROR:輸入,如果找到保有的報價TextParsingException將拋出。

默認值:STOP_AT_DELIMITER

拚花選項

選項

datetimeRebaseMode

類型:字符串

控製變基之間的日期和時間戳值朱利安和預期的公曆日曆。允許的值:異常,遺產,糾正

默認值:遺產

int96RebaseMode

類型:字符串

控製的變基INT96時間戳值之間朱利安和預期的公曆日曆。允許的值:異常,遺產,糾正

默認值:遺產

mergeSchema

類型:布爾

是否來推斷模式跨多個文件和每個文件的合並模式。

默認值:

readerCaseSensitive

類型:布爾

當指定大小寫敏感性行為rescuedDataColumn啟用。如果這是真的,拯救數據列的名字的情況下不同模式;否則,以不區分大小寫的方式讀取數據。

默認值:真正的

rescuedDataColumn

類型:字符串

是否收集所有數據不能被解析由於:一個數據類型不匹配,不匹配和模式(包括列套管)到一個單獨的列中。這一列包含在默認情況下使用時自動加載程序。更多細節請參考獲救的數據列是什麼?

默認值:無

AVRO選項

選項

avroSchema

類型:字符串

Avro格式的用戶提供的可選模式。閱讀Avro時,這個選項可以設置為一種進化模式,這是兼容與實際Avro但是不同的模式。反序列化的模式將與進化模式一致。例如,如果您設置一個進化模式包含一個額外的列的默認值,讀取結果將包含新列。

默認值:無

datetimeRebaseMode

類型:字符串

控製變基之間的日期和時間戳值朱利安和預期的公曆日曆。允許的值:異常,遺產,糾正

默認值:遺產

mergeSchema

類型:布爾

是否來推斷模式跨多個文件和每個文件的合並模式。mergeSchemaAvro不放鬆的數據類型。

默認值:

readerCaseSensitive

類型:布爾

當指定大小寫敏感性行為rescuedDataColumn啟用。如果這是真的,拯救數據列的名字的情況下不同模式;否則,以不區分大小寫的方式讀取數據。

默認值:真正的

rescuedDataColumn

類型:字符串

是否收集所有數據不能被解析由於:一個數據類型不匹配,不匹配和模式(包括列套管)到一個單獨的列中。這一列包含在默認情況下使用時自動加載程序。更多細節請參考獲救的數據列是什麼?

默認值:無

BINARYFILE選項

二進製文件沒有任何額外的配置選項。

文本選項

選項

編碼

類型:字符串

文本文件的編碼的名稱。看到charset選項列表。

默認值:utf - 8

lineSep

類型:字符串

兩個連續的文本記錄之間的字符串。

默認值:沒有,涵蓋r \,\ r \ n\ n

wholeText

類型:布爾

是否要讀取一個文件作為一個單獨的記錄。

默認值:

獸人選項

選項

mergeSchema

類型:布爾

是否來推斷模式跨多個文件和每個文件的合並模式。

默認值: