在复制活动中配置湖屋
本文概述了如何使用数据管道中的复制活动从/向 Fabric Lakehouse 复制数据。 默认情况下,数据以 V 顺序写入 Lakehouse 表,你可以转到 Delta Lake 表优化和 V 顺序来了解详细信息。
支持的格式
Lakehouse 支持以下文件格式。 请参阅每一篇介绍基于格式的设置的文章。
支持的配置
有关复制活动下每个选项卡的配置,请分别转到以下各部分。
常规
对于“常规”选项卡配置,请转到“常规”。
源
Lakehouse 支持复制活动的“源”选项卡下的以下属性。
需要以下属性:
连接:从连接列表中选择湖屋连接。 如果连接不存在,则通过选择连接列表底部的“更多”,创建新的湖屋连接。 如果使用“使用动态内容”来指定湖屋,请添加参数,并将湖屋对象 ID 指定为参数值。 要获取湖屋对象 ID,请在工作区中打开湖屋,ID 位于 URL 中的
/lakehouses/
后面。根文件夹:选择 “表 或 文件”,指示湖中托管或非托管区域的虚拟视图。 有关详细信息,请参阅 Lakehouse 介绍。
如果选择“表”:
表名称:从表列表中选择现有表,或指定表名作为源。 或者,可以选择“新建”来创建新表。
表:在连接中应用包含架构的湖屋时,请从表中选择包含架构的现有表,或将包含架构的表指定为源。 或者,可以选择“新建”来创建包含架构的新表。 如果未指定架构名称,服务将使用 dbo 作为默认架构。
在“高级”下,可以指定以下字段:
- 时间戳:指定以按时间戳查询较旧的快照。
- 版本:指定以按版本查询较旧的快照。
- 其他列:添加其他数据列以存储源文件的相对路径或静态值。 后者支持表达式。
支持读取器版本 1。 可以在本文中找到相应的受支持的 Delta Lake 功能。
如果选择“文件”:
文件路径类型:可以选择“文件路径”、“通配符文件路径”或“文件列表”作为文件路径类型。 以下列表介绍了每个设置的配置:
文件路径:选择“浏览”以选择要复制的文件,或手动填写路径。
通配符文件路径:在给定 Lakehouse 非托管区域(在文件下)中,使用通配符字符指定文件夹或文件路径以过滤源文件夹或文件。 允许的通配符为:
*
(匹配零个或更多字符)和?
(匹配零个或单个字符)。 如果文件夹或文件名内包含通配符或此转义字符,请使用^
进行转义。文件列表:指示复制给定文件集。
- 文件夹路径:指向包含要复制的文件的文件夹。
- 文件列表路径:指向包含要复制的文件列表的文本文件,每行一个文件,即已配置文件路径的相对路径。
递归:指示是要从子文件夹中以递归方式读取数据,还是只从指定的文件夹中读取数据。 如果启用,则以递归方式处理输入文件夹及其子文件夹中的所有文件。 将文件路径类型配置为文件列表时,此属性不适用。
文件格式:从下拉列表中选择文件格式。 选择“设置”按钮以配置文件格式。 有关不同文件格式的设置,请参阅支持格式的文章了解详细信息。
在“高级”下,可以指定以下字段:
- 按上次修改日期筛选:根据上次修改日期筛选文件。 将文件路径类型配置为文件列表时,此属性不适用。
- 开始时间:如果文件的上次修改时间大于或等于配置时间,则会选择这些文件。
- 结束时间:如果文件的上次修改时间小于配置的时间,则选择这些文件。
- 启用分区发现:对于已分区的文件,请指定是否从文件路径分析分区,并将它们添加为附加源列。
- 分区根路径:当启用了分区发现时,请指定绝对根路径,以便将已分区文件夹读取为数据列。
- 最大并发连接:指示活动运行期间与数据存储建立的并发连接的上限。 仅在要限制并发连接时指定一个值。
- 按上次修改日期筛选:根据上次修改日期筛选文件。 将文件路径类型配置为文件列表时,此属性不适用。
目标
Lakehouse 在复制活动的“目标”选项卡下支持以下属性。
需要以下属性:
连接:从连接列表中选择湖屋连接。 如果连接不存在,则通过选择连接列表底部的“更多”,创建新的湖屋连接。 如果使用“使用动态内容”来指定湖屋,请添加参数,并将湖屋对象 ID 指定为参数值。 要获取湖屋对象 ID,请在工作区中打开湖屋,ID 位于 URL 中的
/lakehouses/
后面。根文件夹:选择 “表 或 文件”,指示湖中托管或非托管区域的虚拟视图。 有关详细信息,请参阅 Lakehouse 介绍。
如果选择“表”:
表名称:从表列表中选择现有表,或指定表名作为目标。 或者,可以选择“新建”来创建新表。
表:在连接中应用包含架构的湖屋时,请从表中选择包含架构的现有表,或将包含架构的表指定为目标。 或者,可以选择“新建”来创建包含架构的新表。 如果未指定架构名称,服务将使用 dbo 作为默认架构。
在“高级”下,可以指定以下字段:
表操作:指定针对所选表的操作。
追加:将新值追加到现有表。
- 启用分区:此选择允许基于一列或多列在文件夹结构中创建分区。 每个不同的列值(对)都是一个新分区。 例如,“year=2000/month=01/file”。
- 分区列名称:将数据追加到新表时,从架构映射中的目标列中进行选择。 将数据追加到已有分区的现有表时,系统将根据现有表自动派生分区列。 支持的数据类型为 string、integer、boolean 和 datetime。 格式遵循“映射”选项卡下的类型转换设置。
- 启用分区:此选择允许基于一列或多列在文件夹结构中创建分区。 每个不同的列值(对)都是一个新分区。 例如,“year=2000/month=01/file”。
覆盖:使用新值来覆盖表中的现有数据和架构 如果选择了此操作,则可以在目标表上启用分区:
- 启用分区:此选择允许基于一列或多列在文件夹结构中创建分区。 每个不同的列值(对)都是一个新分区。 例如,“year=2000/month=01/file”。
- 分区列名称:从架构映射中的目标列中进行选择。 支持的数据类型为 string、integer、boolean 和 datetime。 格式遵循“映射”选项卡下的类型转换设置。
它支持 Delta Lake 按时间顺序查看。 覆盖的表具有以前版本的增量日志,可以在 Lakehouse 中访问这些日志。 还可以通过在复制活动源中指定“版本”,从 Lakehouse 复制以前的版本表。
- 启用分区:此选择允许基于一列或多列在文件夹结构中创建分区。 每个不同的列值(对)都是一个新分区。 例如,“year=2000/month=01/file”。
最大并发连接:活动运行期间与数据存储建立的并发连接的上限。 仅在要限制并发连接时指定一个值。
支持编写器版本 2。 可以在本文中找到相应的受支持的 Delta Lake 功能。
如果选择“文件”:
文件路径:选择“浏览”以选择要复制的文件,或手动填写路径。
文件格式:从下拉列表中选择文件格式。 选择“设置”以配置文件格式。 有关不同文件格式的设置,请参阅支持格式的文章了解详细信息。
在“高级”下,可以指定以下字段:
复制活动:定义以基于文件的数据存储中的文件为源时的复制行为。 可以选择“平展层次结构”、“合并文件”、“保留层次结构”或“添加动态内容”作为复制行为。 每个设置的配置为:
平展层次结构:源文件夹中的所有文件都位于目标文件夹的第一级别。 目标文件具有自动生成的名称。
合并文件:将源文件夹中的所有文件合并到一个文件中。 如果指定了文件名,则合并文件的名称为指定名称。 否则,它是自动生成的文件名。
保留层次结构:将文件层次结构保留到目标文件夹中。 指向源文件夹的源文件相对路径与指向目标文件夹的目标文件相对路径相同。
添加动态内容:若要指定属性值的表达式,请选择“添加动态内容”。 这字段会打开“表达式生成器”,在其中可以通过支持的系统变量、活动输出、函数和用户指定的变量或参数来生成表达式。 若要了解表达式语言详细信息,请参阅表达式和函数。
最大并发连接:活动运行期间与数据存储建立的并发连接的上限。 仅在要限制并发连接时指定一个值。
块大小 (MB):将数据写入 Lakehouse 时指定块大小(以 MB 为单位)。 允许的值介于 4 MB 到 100 MB 之间。
元数据:在复制到目标数据存储时设置自定义元数据。
metadata
数组下的每个对象都表示一个额外的列。name
定义元数据键名称,value
表示该键的数据值。 如果使用了保留属性功能,则指定的元数据会与源文件元数据联合,或者会被其覆盖。 允许的数据值为:
映射
对于“映射”选项卡配置,如果不将 Lakehouse 表作为目标数据存储,请转到“映射”。
如果将 Lakehouse 表应用为目标数据存储,则除了“映射”中的配置外,可以编辑目标列的类型。 选择“导入架构”后,可以在目标中指定列类型。
例如,源中 PersonID 列的类型为 int,当映射到目标列时,你可以将其更改为字符串类型。
注意
当源为十进制类型时,当前不支持编辑目标类型。
如果选择“二进制”作为文件格式,则不支持映射。
设置
对于“设置”选项卡配置,请转到“设置”。
表摘要
下表包含有关 Lakehouse 中复制活动的详细信息。
源信息
名称 | 描述 | 值 | 必选 | JSON 脚本属性 |
---|---|---|---|---|
Connection | 选择“连接”的部分。 | <湖屋连接> | 是 | workspaceId artifactId |
根文件夹 | 根文件夹的类型。 | • 表 • 文件 |
否 | rootFolder: 表或文件 |
表名称 | 想要读取数据的表的名称。 | <你的表名称> | 选择根文件夹中的“表”时,是的 | 表 |
表 | 将包含架构的湖屋应用为连接时,想要读取数据的包含架构的表名称。 | <包含架构的表> | 选择根文件夹中的“表”时,是的 | / |
对于“表” | ||||
架构名称 | 架构的名称。 | <架构名称> (默认为 dbo) |
否 | (在 source 下 ->datasetSettings ->typeProperties )schema |
表名称 | 表的名称。 | <你的表名称> | 是 | 表 |
Timestamp | 用于查询较旧快照的时间戳。 | <timestamp> | 否 | timestampAsOf |
版本 | 要查询较旧快照的版本。 | <version> | 否 | versionAsOf |
其他列 | 其他数据列以存储源文件的相对路径或静态值。 后者支持表达式。 | • 姓名 • 值 |
否 | additionalColumns: • 名称 • 值 |
文件路径类型 | 使用的文件路径的类型。 | • 文件路径 • 通配符文件路径 • 文件列表 |
选择“根文件夹”中的“表”时,为“是” | / |
文件路径 | 从路径复制到源数据存储下的文件夹/文件。 | <file path> | 选择文件路径时,是的 | • folderPath • filename |
通配符路径 | 配置为筛选源文件夹的源数据存储下包含通配符的文件夹路径。 | <通配符路径> | 选择通配符文件路径时,是的 | • wildcardFolderPath • wildcardFileName |
文件夹路径 | 指向包含要复制的文件的文件夹。 | <文件夹路径> | 否 | folderPath |
文件列表的路径 | 指明复制给定文件集。 指向包含要复制的文件列表的文本文件,其中每行一个文件(即配置路径的相对路径)。 | <文件列表的路径> | 否 | fileListPath |
Recursively | 以递归方式处理输入文件夹及其子文件夹中的所有文件,或者仅处理所选文件夹中的文件。 选择单个文件时,将禁用此设置。 | 选择或取消选择 | 否 | 递归: true 或 false |
文件格式 | 源数据的文件格式。 有关不同文件格式的信息,请参阅支持的格式的文章了解详细信息。 | / | 选择“根文件夹”中的“表”时,为“是” | / |
按上次修改时间筛选 | 将筛选在 [开始时间、结束时间) 范围内具有上次修改时间的文件,以便进一步处理。 该时间将以 yyyy-mm-ddThh:mm:ss.fffZ 格式应用于 UTC 时区。可以跳过此属性,这意味着不会应用任何文件属性筛选器。 将文件路径类型配置为文件列表时,此属性不适用。 |
• 开始时间 • 结束时间 |
否 | modifiedDatetimeStart modifiedDatetimeEnd |
启用分区发现 | 是否从文件路径分析分区,并将它们添加为附加的源列。 | 已选择或未选择 | 否 | enablePartitionDiscovery: true 或 false(默认) |
分区根路径 | 将分区文件夹读取为数据列的绝对分区根路径。 | <你的分区根路径> | 否 | partitionRootPath |
最大并发连接数 | 活动运行期间与数据存储建立的并发连接的上限。 仅在要限制并发连接的数量时,才需要值。 | <最大并发连接数> | 否 | maxConcurrentConnections |
目标信息
名称 | 描述 | 值 | 必选 | JSON 脚本属性 |
---|---|---|---|---|
Connection | 选择“连接”的部分。 | <湖屋连接> | 是 | workspaceId artifactId |
根文件夹 | 根文件夹的类型。 | • 表 • 文件 |
是 | rootFolder: 表或文件 |
表名称 | 要向其写入数据的表名称。 | <你的表名称> | 选择根文件夹中的“表”时,是的 | 表 |
表 | 将包含架构的湖屋应用为连接时,想要向其写入数据的表名称。 | <包含架构的表> | 选择根文件夹中的“表”时,是的 | / |
对于“表” | ||||
架构名称 | 架构的名称。 | <架构名称> (默认为 dbo) |
否 | (在 sink 下 ->datasetSettings ->typeProperties )schema |
表名称 | 表的名称。 | <你的表名称> | 是 | 表 |
表操作 | 将新值追加到现有表,或使用新值覆盖表中的现有数据和架构。 | • 追加 • 覆盖 |
否 | tableActionOption: 追加或 OverwriteSchema |
启用分区 | 此选择允许基于一列或多列在文件夹结构中创建分区。 每个不同的列值(对)都是一个新分区。 例如,“year=2000/month=01/file”。 | 已选择或未选择 | 否 | partitionOption: PartitionByKey 或 None |
分区列 | 架构映射中的目标列。 | <分区列> | 否 | partitionNameList |
文件路径 | 将数据写入目标数据存储下的文件夹/文件的路径。 | <file path> | 否 | • folderPath • filename |
文件格式 | 目标数据的文件格式。 有关不同文件格式的信息,请参阅支持的格式的文章了解详细信息。 | / | 选择“根文件夹”中的“表”时,为“是” | / |
复制行为 | 定义以基于文件的数据存储中的文件为源时的复制行为。 | • 平展层次结构 • 合并文件 • 保留层次结构 • 添加动态内容 |
否 | copyBehavior - FlattenHierarchy - MergeFiles - PreserveHierarchy |
最大并发连接数 | 活动运行期间与数据存储建立的并发连接的上限。 仅在要限制并发连接时指定一个值。 | <最大并发连接数> | 否 | maxConcurrentConnections |
块大小 (MB) | 用于将数据写入到 Lakehosue 的块大小(以 MB 为单位)。 允许的值介于 4 MB 到 100 MB 之间。 | <块大小> | 否 | blockSizeInMB |
元数据 | 复制到目标时设置的自定义元数据。 | • $$LASTMODIFIED • 表达式 • 静态值 |
否 | metadata |