Azure Synapse Analytics 共享元数据

Azure Synapse Analytics 允许不同的工作区计算引擎在 Apache Spark 池和无服务器 SQL 池之间共享数据库和表。

共享支持所谓的新式数据仓库模式,并为工作区 SQL 引擎提供对使用 Spark 创建的数据库和表的访问权限。 它还允许 SQL 引擎创建自身的不与其他引擎共享的对象。

支持新式数据仓库

共享元数据模型采用以下方式支持新式数据仓库模式:

  1. 通过将准备好的数据存储在(可能已分区的)基于 Parquet 的表(可能包含在多个数据库中)中,使用 Spark 有效地准备和构建 Data Lake 中的数据。

  2. Spark 创建的数据库及其所有表将在任何 Azure Synapse 工作区 Spark 池实例中可见,可从任何 Spark 作业使用。 此功能受 权限 约束,因为工作区中的所有 Spark 池共享相同的基础目录元存储。

  3. Spark 创建的数据库及其基于 Parquet 和基于 CSV 的表将显示在工作区无服务器 SQL 池中。 数据库 在无服务器 SQL 池元数据中自动创建,并且 Spark 作业创建 的外部表和托管表 都可以作为相应数据库的架构中的无服务器 SQL 池元数据中的 dbo 外部表进行访问。

对象同步以异步方式发生。 对象在 SQL 上下文中出现之前,会稍有延迟几秒钟。 出现后,可以查询它们,但不能由有权访问它们的 SQL 引擎进行更新或更改。

共享元数据对象

Spark 允许创建数据库、外部表、托管表和视图。 由于 Spark 视图需要 Spark 引擎来处理定义的 Spark SQL 语句,并且不能由 SQL 引擎处理,因此只有使用 Parquet 或 CSV 存储格式的数据库及其包含的外部表和托管表与工作区 SQL 引擎共享。 Spark 视图仅在 Spark 池实例之间共享。

安全模型一目了然

Spark 数据库和表及其在 SQL 引擎中的同步表示形式在基础存储级别受到保护。 当查询提交者有权使用的任何引擎查询表时,会将查询提交者的安全主体传递到基础文件。 在文件系统级别进行权限检查。

有关详细信息,请参阅 Azure Synapse Analytics 共享数据库

更改维护

如果使用 Spark 删除或更改元数据对象,则会选取更改并将其传播到无服务器 SQL 池。 同步是异步的,更改在短暂延迟后反映在 SQL 引擎中。

后续步骤