Azure 数据工厂中的增量格式

适用于: Azure 数据工厂

本文重点介绍如何使用增量格式从/向存储在 Azure Data Lake Store Gen2Azure Blob 存储中的 delta lake 复制数据。 该连接器作为映射数据流中的内联数据集提供,同时用作源和接收器。

映射数据流属性

该连接器作为映射数据流中的内联数据集提供,同时用作源和接收器。

源属性

下表列出了 delta 源支持的属性。 可以在“源选项”选项卡中编辑这些属性。

名称 说明 必需 允许的值 数据流脚本属性
格式 格式必须为 delta delta format
文件系统 delta lake 的容器/文件系统 字符串 fileSystem
文件夹路径 delta lake 的直接 字符串 folderPath
压缩类型 delta 表的压缩类型 bzip2
gzip
deflate
ZipDeflate
snappy
lz4
compressionType
压缩级别 选择压缩是否尽快完成,或者是否应该以最佳方式压缩生成的文件。 如果指定了 compressedType,则为必需项。 OptimalFastest compressionLevel
按时间顺序查看 选择是否查询 delta 表的旧快照 按时间戳查询:Timestamp
按版本查询:Integer
timestampAsOf
versionAsOf
允许找不到文件 如果为 true,则找不到文件时不会引发错误 truefalse ignoreNoFilesFound

导入架构

Delta 仅作为内联数据集提供,且默认情况下没有关联架构。 若要获取列元数据,请单击“投影”选项卡中的“导入架构”按钮 。这样你可以引用语料库指定的列名称和数据类型。 若要导入架构,数据流调试会话必须处于活动状态,还必须具有可以指向的现有 CDM 实体定义文件。

Delta 源脚本示例

source(output(movieId as integer,
            title as string,
            releaseDate as date,
            rated as boolean,
            screenedOn as timestamp,
            ticketPrice as decimal(10,2)
            ),
    store: 'local',
    format: 'delta',
    versionAsOf: 0,
    allowSchemaDrift: false,
    folderPath: $tempPath + '/delta'
  ) ~> movies

接收器属性

下表列出了 delta 接收器支持的属性。 可以在“设置”选项卡中编辑这些属性。

名称 说明 必需 允许的值 数据流脚本属性
格式 格式必须为 delta delta format
文件系统 delta lake 的容器/文件系统 字符串 fileSystem
文件夹路径 delta lake 的直接 字符串 folderPath
压缩类型 delta 表的压缩类型 bzip2
gzip
deflate
ZipDeflate
snappy
lz4
compressionType
压缩级别 选择压缩是否尽快完成,或者是否应该以最佳方式压缩生成的文件。 如果指定了 compressedType,则为必需项。 OptimalFastest compressionLevel
清空 以小时为单位指定旧版本表的保留期阈值。 小于等于 0 的值默认为 30 天 Integer vacuum
Update 方法 指定在 delta lake 上允许哪些更新操作。 对于不插入的方法,需要执行前面的更改行转换才能标记行。 truefalse deletable
insertable
可更新
merge
优化写入 通过优化 Spark 执行程序中的内部随机选择,使写入操作实现更高的吞吐量。 因此,你可能会注意到较大的分区和文件比较少 truefalse optimizedWrite: true
自动压缩 完成任何写入操作后,Spark 会自动执行 OPTIMIZE 命令以重新组织数据,并在必要时生成更多分区,以便在将来获得更好的读取性能 truefalse autoCompact: true

Delta 接收器脚本示例

关联的数据流脚本为:

moviesAltered sink(
          input(movieId as integer,
                title as string
            ),
           mapColumn(
                movieId,
                title
            ),
           insertable: true,
           updateable: true,
           deletable: true,
           upsertable: false,
           keys: ['movieId'],
            store: 'local',
           format: 'delta',
           vacuum: 180,
           folderPath: $tempPath + '/delta'
           ) ~> movieDB

已知限制

写入 delta 接收器时,存在一个已知的限制,即不会在监视输出中返回写入的行数。

后续步骤