你当前正在访问 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:

  • Synapse 管道:用于分析工作负载的完全托管数据集成服务。Synapse 管道与 90 多个受支持的源连接,以提供高效且可复原的数据传输。 Synapse 管道准备、转换和扩充数据,以提供可通过不同方式监视的见解。 此服务可在周期性时间线上用作一次性解决方案,或者由特定的事件触发。

使用 SDK 的编程引入

Azure Synapse 数据资源管理器提供可用于查询和数据引入的 SDK。 通过在引入期间和之后尽量减少存储事务,编程引入得到优化,可降低引入成本 (COG)。

在开始之前,请使用以下步骤获取数据资源管理器池终结点以配置编程引入。

  1. 在 Synapse Studio 的左侧窗格中,选择“管理”>“数据资源管理器池” 。

  2. 选择要用于查看其详细信息的数据资源管理器池。

    数据资源管理器池屏幕的屏幕截图,显示现有池的列表。

  3. 记录查询和数据引入终结点。 在配置到数据资源管理器池的连接时,请使用查询终结点作为群集。 为数据引入配置 SDK 时,请使用数据引入终结点。

    数据资源管理器池属性窗格的屏幕截图,显示查询和数据引入 URI 地址。

可用的 SDK 和开放源代码项目

工具

  • 一键式引入 :可让你创建和调整各种源类型的表,从而快速引入数据。 一键式引入会根据 Azure Synapse 数据资源管理器中的数据源自动推荐表和映射结构。 一键式引入可用于一次性引入,或通过事件网格在引入数据的容器上定义持续引入。

Kusto 查询语言引入控制命令

可以通过多种方法利用 Kusto 查询语言 (KQL) 命令将数据直接引入引擎。 由于此方法绕过数据管理服务,因此仅适用于探索和制作原型。 不要在生产或大容量方案中使用此方法。

  • 内联引入:向引擎发送控制命令 .ingest inline,要引入的数据是命令文本自身的一部分。 此方法用于临时测试目的。

  • 从查询引入:向引擎发送控制命令 .set、.append、.set-or-append 或 .set-or-replace,将数据间接指定为查询或命令的结果。

  • 从存储引入(拉取) :向引擎发送控制命令 .ingest into,数据存储在某个外部存储(例如 Azure Blob 存储)中,可供引擎访问,命令也可以指向它。

有关使用引入控制命令的示例,请参阅使用数据资源管理器进行分析

引入过程

根据需要选择最适合的引入方法后,执行以下步骤:

  1. 设置保留策略

    引入 Azure Synapse 数据资源管理器中的表的数据必须遵循该表的有效保留策略。 除非在表上显式设置,否则有效保留策略派生自数据库的保留策略。 热保留是群集大小和保留策略的功能。 引入超过可用空间的数据将强制首先进入的数据进行冷保留。

    确保数据库的保留策略符合你的需求。 如果并非如此,请在表级别显式重写它。 有关详细信息,请参阅保留策略

  2. 创建表

    为了引入数据,需要事先创建一个表。 使用以下选项之一:

    注意

    如果记录不完整或者无法将字段解析为所需的数据类型,则将使用 NULL 值填充相应的表列。

  3. 创建架构映射

    架构映射有助于将源数据字段绑定到目标表列。 映射允许根据定义的属性,将不同源中的数据引入同一个表。 支持不同类型的映射,行导向(CSV、JSON 和 AVRO)和列导向 (Parquet)。 在大部分方法中,可以在表上预先创建映射并从引入命令参数进行引用。

  4. 设置更新策略(可选)

    一些数据格式映射(Parquet、JSON 和 Avro)支持简单且有用的引入时间转换。 如果在引入时需要进行更复杂的处理,可使用更新策略,该策略允许使用 Kusto 查询语言命令进行轻型处理。 更新策略自动对原始表上的引入数据运行提取和转换,并将生成的数据引入到一个或多个目标表。 设置更新策略

后续步骤