复制到

适用于:检查标记是的”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

类型:布尔

是否来推断模式跨多个文件和每个文件的合并模式。

默认值: