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 作业创建的外部表和托管表可以外部表的形式在相应数据库的 dbo 架构内的无服务器 SQL 池元数据中供访问。

对象同步以异步方式发生。 对象将在略微延迟几秒后出现在 SQL 上下文中。 这些对象出现后即可供查询,但有权访问这些对象的 SQL 引擎不能更新或更改它们。

共享元数据对象

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

安全模型概览

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

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

更改维护

如果使用 Spark 删除或更改了元数据对象,系统会拾取更改,并将其传播到无服务器 SQL 池。 同步以异步方式进行,在短暂的延迟后,SQL 引擎中即会反映更改。

后续步骤