你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Synapse 数据资源管理器数据引入概述(预览版)
数据引入是用于从一个或多个源加载数据记录以将数据导入 Azure Synapse 数据资源管理器池中的表的过程。 引入后,数据即可用于查询。
负责数据引入的 Azure Synapse 数据资源管理器数据管理服务实现以下过程:
- 从外部源批量或流式拉取数据,然后从挂起的 Azure 队列中读取请求。
- 批数据流入相同的数据库和表中,以优化引入吞吐量。
- 验证初始数据,并在必要时转换格式。
- 进一步的数据操作包括匹配架构、组织、编制索引、编码和压缩数据。
- 数据根据设置的保留策略保留在存储中。
- 将引入的数据提交到引擎中,以供查询使用。
支持的数据格式、属性和权限
引入属性 :影响数据引入方式的属性(例如,标记、映射、创建时间)。
权限:若要引入数据,需要数据库引入器级别权限。 其他操作(例如查询)可能需要数据库管理员、数据库用户或表管理员权限。
批量与流式引入
批量引入执行数据批处理,并针对高引入吞吐量进行优化。 此方法是引入的首选且性能最高。 数据根据引入属性进行批处理。 合并并优化小批量数据,以快速获得查询结果。 可以在数据库或表上设置引入批处理策略。 默认情况下,最大批处理值为 5 分钟、1000 项,或者 1 GB 的总大小。 批量引入命令的数据大小限制为 4 GB。
流式引入是来自流式处理源的正在进行的数据引入。 流式引入针对每个表的小型数据允许近乎实时的延迟。 数据最初引入到行存储,然后移动到列存储盘区。
引入方法和工具
Azure Synapse 数据资源管理器支持多种引入方法,每种方法都有自己的目标方案。 这些方法包括引入工具、各种服务的连接器和插件、托管管道、使用 SDK 的编程引入,以及直接引入。
使用托管管道的引入
对于希望通过外部服务进行管理(限制、重试、监视器、警报等)的组织而言,使用连接器可能是最合适的解决方案。 排队引入适合大数据量。 Azure Synapse 数据资源管理器支持以下 Azure Pipelines:
- 事件中心 :将事件从服务传输到 Azure Synapse 数据资源管理器的管道。 有关详细信息,请参阅将数据从事件中心引入到 Azure Synapse 数据资源管理器。
- Synapse 管道:用于分析工作负载的完全托管数据集成服务。Synapse 管道与 90 多个受支持的源连接,以提供高效且可复原的数据传输。 Synapse 管道准备、转换和扩充数据,以提供可通过不同方式监视的见解。 此服务可在周期性时间线上用作一次性解决方案,或者由特定的事件触发。
使用 SDK 的编程引入
Azure Synapse 数据资源管理器提供可用于查询和数据引入的 SDK。 通过在引入期间和之后尽量减少存储事务,编程引入得到优化,可降低引入成本 (COG)。
在开始之前,请使用以下步骤获取数据资源管理器池终结点以配置编程引入。
在 Synapse Studio 的左侧窗格中,选择“管理”>“数据资源管理器池” 。
选择要用于查看其详细信息的数据资源管理器池。
记录查询和数据引入终结点。 在配置到数据资源管理器池的连接时,请使用查询终结点作为群集。 为数据引入配置 SDK 时,请使用数据引入终结点。
可用的 SDK 和开放源代码项目
工具
- 一键式引入 :可让你创建和调整各种源类型的表,从而快速引入数据。 一键式引入会根据 Azure Synapse 数据资源管理器中的数据源自动推荐表和映射结构。 一键式引入可用于一次性引入,或通过事件网格在引入数据的容器上定义持续引入。
Kusto 查询语言引入控制命令
可以通过多种方法利用 Kusto 查询语言 (KQL) 命令将数据直接引入引擎。 由于此方法绕过数据管理服务,因此仅适用于探索和制作原型。 不要在生产或大容量方案中使用此方法。
内联引入:向引擎发送控制命令 .ingest inline,要引入的数据是命令文本自身的一部分。 此方法用于临时测试目的。
从查询引入:向引擎发送控制命令 .set、.append、.set-or-append 或 .set-or-replace,将数据间接指定为查询或命令的结果。
从存储引入(拉取) :向引擎发送控制命令 .ingest into,数据存储在某个外部存储(例如 Azure Blob 存储)中,可供引擎访问,命令也可以指向它。
有关使用引入控制命令的示例,请参阅使用数据资源管理器进行分析。
引入过程
根据需要选择最适合的引入方法后,执行以下步骤:
设置保留策略
引入 Azure Synapse 数据资源管理器中的表的数据必须遵循该表的有效保留策略。 除非在表上显式设置,否则有效保留策略派生自数据库的保留策略。 热保留是群集大小和保留策略的功能。 引入超过可用空间的数据将强制首先进入的数据进行冷保留。
确保数据库的保留策略符合你的需求。 如果并非如此,请在表级别显式重写它。 有关详细信息,请参阅保留策略。
创建表
为了引入数据,需要事先创建一个表。 使用以下选项之一:
使用命令创建表。 有关使用 create a table 命令的示例,请参阅使用数据资源管理器进行分析。
使用一键式引入创建表。
注意
如果记录不完整或者无法将字段解析为所需的数据类型,则将使用 NULL 值填充相应的表列。
创建架构映射
架构映射有助于将源数据字段绑定到目标表列。 映射允许根据定义的属性,将不同源中的数据引入同一个表。 支持不同类型的映射,行导向(CSV、JSON 和 AVRO)和列导向 (Parquet)。 在大部分方法中,可以在表上预先创建映射并从引入命令参数进行引用。
设置更新策略(可选)
一些数据格式映射(Parquet、JSON 和 Avro)支持简单且有用的引入时间转换。 如果在引入时需要进行更复杂的处理,可使用更新策略,该策略允许使用 Kusto 查询语言命令进行轻型处理。 更新策略自动对原始表上的引入数据运行提取和转换,并将生成的数据引入到一个或多个目标表。 设置更新策略。