在复制活动中配置数据仓库
本文概述了如何使用数据管道中的复制活动从/向数据仓库复制数据。
支持的配置
有关复制活动下每个选项卡的配置,请分别转到以下各部分。
常规
对于“常规”选项卡配置,请转到“常规”。
源
在复制活动中作为源的数据仓库支持以下属性。
需要以下属性:
数据存储类型:选择“工作区”。
工作区数据存储类型:从数据存储类型列表中选择“数据仓库”。
数据仓库:从工作区中选择现有的“数据仓库”。
使用查询:选择“表”、“查询”或“存储过程”。
如果选择“表”,请从表列表中选择现有表,或通过选择“编辑”框来手动指定表名称。
如果选择“查询”,请使用自定义 SQL 查询编辑器编写用于检索源数据的 SQL 查询。
如果选择“存储过程”,请从下拉列表中选择现有的存储过程,或通过选择“编辑”框将存储过程名称指定为源。
在“高级”下,可以指定以下字段:
查询超时(分钟):查询命令执行的超时时间,默认值为 120 分钟。 如果设置了此属性,则允许的值采用时间跨度格式,例如“02:00:00”(120 分钟)。
隔离级别:指定 SQL 源的事务锁定行为。
分区选项:指定用于从数据仓库加载数据的数据分区选项。 可以选择“无”或“动态范围”。
如果选择“动态范围”,则使用启用了并行功能的查询时,需要提供范围分区参数 (
?AdfDynamicRangePartitionCondition
)。 示例查询:SELECT * FROM <TableName> WHERE ?AdfDynamicRangePartitionCondition
。- 分区列名称:以整数类型、日期类型或日期/时间类型(
int
、smallint
、bigint
、date
、smalldatetime
、datetime
、datetime2
或datetimeoffset
)指定源列的名称,范围分区将使用它进行并行复制。 如果未指定,系统会自动检测表的索引或主键并将其用作分区列。 - 分区上限:分区范围拆分的分区列的最大值。 此值用于决定分区步幅,不用于筛选表中的行。 将对表或查询结果中的所有行进行分区和复制。
- 分区下:分区范围拆分的分区列的最小值。 此值用于决定分区步幅,不用于筛选表中的行。 将对表或查询结果中的所有行进行分区和复制。
- 分区列名称:以整数类型、日期类型或日期/时间类型(
其他列:添加其他数据列以存储源文件的相对路径或静态值。 后者支持表达式。
目标
在复制活动中作为目标的数据仓库支持以下属性。
需要以下属性:
- 数据存储类型:选择“工作区”。
- 工作区数据存储类型:从数据存储类型列表中选择“数据仓库”。
- 数据仓库:从工作区中选择现有的“数据仓库”。
- 表:从表列表中选择现有表,或指定表名作为目标。
在“高级”下,可以指定以下字段:
复制命令设置:指定复制命令属性。
表选项:指定是否根据源架构自动创建目标表(如果目标表不存在)。 可以选择“无”或“自动创建表”。
复制前脚本:指定每次运行时,将数据写入到数据仓库之前要运行的 SQL 查询。 使用此属性清理预加载的数据。
写入批处理超时:超时前等待批量插入操作完成的时间。允许的值采用时间跨度格式。 默认值为“00:30:00”(30 分钟)。
禁用性能指标分析:该服务收集指标,用于进行复制性能优化和提供建议。 如果担心此行为,请关闭此功能。
直接复制
COPY 语句是将数据引入仓库表的主要方法。 数据仓库 COPY 命令直接支持 Azure Blob 存储和 Azure Data Lake Storage Gen2 作为源数据存储。 如果源数据满足本部分所述的条件,请使用 COPY 命令从源数据存储直接复制到数据仓库。
源数据和格式包含以下类型和身份验证方法:
支持的源数据存储类型 支持的格式 支持的源身份验证类型 Azure Blob 存储 带分隔符的文本
Parquet匿名身份验证
帐户密钥身份验证
共享访问签名身份验证Azure Data Lake Storage Gen2 带分隔符的文本
Parquet帐户密钥身份验证
共享访问签名身份验证可以设置以下格式设置:
- 对于 Parquet:压缩类型可以是“无”、“snappy”或“gzip”。
- 对于 DelimitedText:
- 行分隔符:通过直接 COPY 命令将带分隔符的文本复制到数据仓库时,显式指定行分隔符(\r、\n 或 \r\n)。 仅当源文件的行分隔符为 \r\n 时,默认值(\r、\n 或 \r\n)才有效。 否则,请为方案启用暂存。
- Null 值保留为默认值或设置为“空字符串("")”。
- 编码保留为默认值或设置为“UTF-8”或“UTF-16”。
- 跳过行计数保留为默认值或设置为 0。
- 压缩类型可以是“无”或“gzip”。
如果源是文件夹,则必须选中“递归”复选框。
未在“按上次修改时间筛选”、“前缀”、“启用分区发现”和“其他列”中指定“开始时间(UTC)”和“结束时间(UTC)”。
若要了解如何使用 COPY 命令将数据引入数据仓库,请参阅此文。
如果 COPY 命令最初不支持源数据存储和格式,请改为通过 COPY 命令功能来使用暂存副本。 它会自动将数据转换为 COPY 命令兼容格式,然后调用 COPY 命令以将数据加载到数据仓库中。
暂存复制
如果源数据与 COPY 命令不原生兼容,请通过临时暂存存储启用数据复制。 在这种情况下,该服务会自动转换数据,以满足 COPY 命令的数据格式要求。 然后,它会调用 COPY 命令以将数据加载到数据仓库。 最后,它会从存储中清理临时数据。
要使用暂存副本,请转到“设置”选项卡,然后选择“启用暂存”。 可以选择“工作区”以在 Fabric 中使用自动创建的暂存存储。 对于“外部”,支持将 Azure Blob 存储 和 Azure Data Lake Storage Gen2 作为外部暂存存储。 首先需要创建一个 Azure Blob 存储或 Azure Data Lake Storage Gen2 连接,然后从下拉列表中选择该连接以使用暂存存储。
请注意,需要确保已从过渡存储正确允许数据仓库的 IP 范围。
映射
对于“映射”选项卡配置,如果不将具有自动创建表的数据仓库应用为目的地,请转到映射。
如果将具有自动创建表的数据仓库应用为目的地,则除了映射中的配置外,可以编辑目的地列的类型。 选择“导入架构”后,可以在目标中指定列类型。
例如,源中 ID 列的类型为 int,当映射到目的地列时,你可以将其更改为浮点类型。
设置
对于“设置”选项卡配置,请转到“设置”。
表摘要
下面的表包含有关数据仓库中的复制活动的详细信息。
源信息
名称 | 描述 | 值 | 必选 | JSON 脚本属性 |
---|---|---|---|---|
数据存储类型 | 你的数据存储类型。 | 工作区 | 是 | / |
工作区数据存储类型 | 用于选择工作区数据存储类型的部分。 | 数据仓库 | 是 | type |
数据仓库 | 你要使用的数据仓库。 | <你的数据仓库> | 是 | endpoint artifactId |
使用查询 | 从数据仓库读取数据的方式。 | • 表 • 查询 • 存储过程 |
否 | (在 typeProperties 下 ->source )• typeProperties: schema 表 • sqlReaderQuery • sqlReaderStoredProcedureName |
查询超时(分钟) | 查询命令执行的超时时间,默认值为 120 分钟。 如果设置了此属性,则允许的值采用时间跨度格式,例如“02:00:00”(120 分钟)。 | timespan | 否 | queryTimeout |
隔离级别 | 指定源的事务锁定行为。 | • 无 • 快照 |
否 | isolationLevel |
分区选项 | 用于从数据仓库加载数据的数据分区选项。 | • 无 • 动态范围 |
否 | partitionOption |
分区列名称 | 具有整数类型、日期类型或日期/时间类型(int 、smallint 、bigint 、date 、smalldatetime 、datetime 、datetime2 或 datetimeoffset )的源列的名称,范围分区将使用它进行并行复制。 如果未指定,系统会自动检测表的索引或主键并将其用作分区列。 |
<分区列名称> | 否 | partitionColumnName |
分区上限 | 分区范围拆分的分区列的最大值。 此值用于决定分区步幅,不用于筛选表中的行。 将对表或查询结果中的所有行进行分区和复制。 | <分区上限> | 否 | partitionUpperBound |
分区下限 | 分区范围拆分的分区列的最小值。 此值用于决定分区步幅,不用于筛选表中的行。 将对表或查询结果中的所有行进行分区和复制。 | <分区下限> | 否 | partitionLowerBound |
其他列 | 添加其他数据列以存储源文件的相对路径或静态值。 | • 姓名 • 值 |
否 | additionalColumns: • 名称 • 值 |
目标信息
名称 | 描述 | 值 | 必选 | JSON 脚本属性 |
---|---|---|---|---|
数据存储类型 | 你的数据存储类型。 | 工作区 | 是 | / |
工作区数据存储类型 | 用于选择工作区数据存储类型的部分。 | 数据仓库 | 是 | type |
数据仓库 | 你要使用的数据仓库。 | <你的数据仓库> | 是 | endpoint artifactId |
表 | 要写入数据的目标表。 | <目标表的名称> | 是 | 架构 表 |
复制命令设置 | 复制命令属性设置。 包含默认值设置。 | 默认值: • 列 • 值 |
否 | copyCommandSettings: defaultValues: • columnName • defaultValue |
表选项 | 指定是否根据源架构自动创建目标表(如果目标表不存在)。 | • 无 • 自动创建表 |
否 | tableOption: • autoCreate |
复制前脚本 | 指定每次运行时,将数据写入到数据仓库之前要运行的 SQL 查询。 使用此属性清理预加载的数据。 | <复制前脚本> | 否 | preCopyScript |
写入批处理超时 | 超时前等待批量插入操作完成的时间。允许的值采用时间跨度格式。 默认值为“00:30:00”(30 分钟)。 | timespan | 否 | writeBatchTimeout |
禁用性能指标分析 | 该服务收集指标,用于进行复制性能优化和提供建议,从而引入额外的主数据库访问权限。 | 选择或取消选择 | 否 | disableMetricsCollection: True 或 False |