在 Microsoft Purview 中连接到并管理 Snowflake

本文概述了如何注册 Snowflake,以及如何在 Microsoft Purview 中对 Snowflake 进行身份验证和交互。 有关 Microsoft Purview 的详细信息,请阅读 介绍性文章

支持的功能

元数据提取 完整扫描 增量扫描 作用域扫描 分类 标记 访问策略 血统 数据共享 实时视图

扫描 Snowflake 源时,Microsoft Purview 支持:

  • 提取技术元数据,包括:

    • 服务器
    • Databases
    • Schemas
    • 包含列、外键和唯一约束的表
    • 包含列的视图
    • 存储过程,包括参数数据集和结果集
    • 包含参数数据集的函数
    • 管道
    • Stages
    • 包含列的流
    • 任务
    • Sequences
  • 提取表、视图、流和存储过程之间资产关系的静态世系。

对于存储过程,可以选择在 扫描设置上提取的详细信息级别。 Snowflake 脚本支持存储过程世系, (SQL) 和 JavaScript 语言,并根据过程定义生成。

设置扫描时,可以选择完全基于给定名称 () 或名称模式 () 扫描一个或多个 Snowflake 数据库 () ,或者进一步将扫描范围限定为与给定名称 () 或名称模式匹配的架构子集 () 。

已知限制

  • 从数据源中删除对象时,当前后续扫描不会自动删除 Microsoft Purview 中的相应资产。
  • 以下模式不支持存储过程世系:
    • 用 Java、Python 和 Scala 语言定义的存储过程。
    • 使用 SQL EXECUTE IMMEDIATE 和静态 SQL 查询作为变量的存储过程。

先决条件

注意

如果数据存储不可公开访问 (如果数据存储限制从本地网络、专用网络或特定 IP 等 ) 的访问, 则需要配置自承载集成运行时才能连接到它

扫描所需的权限

Microsoft Purview 支持基本身份验证 (用户名和密码) 扫描 Snowflake。 给定用户的默认角色将用于执行扫描。 Snowflake 用户必须对要扫描的仓库和数据库 () 具有使用权限,并且必须具有对系统表的读取权限才能访问高级元数据。

下面是一个示例演练,用于创建专用于 Microsoft Purview 扫描的用户并设置权限。 如果选择使用现有用户,请确保该用户对仓库和数据库对象具有足够的权限。

  1. 设置 purview_reader 角色。 需要 ACCOUNTADMIN 权限才能执行此操作。

    USE ROLE ACCOUNTADMIN;
    
    --create role to allow read only access - this will later be assigned to the Microsoft Purview user
    CREATE OR REPLACE ROLE purview_reader;
    
    --make sysadmin the parent role
    GRANT ROLE purview_reader TO ROLE sysadmin;
    
  2. 创建一个仓库供 Microsoft Purview 使用和授予权限。

    --create warehouse - account admin required
    CREATE OR REPLACE WAREHOUSE purview_wh WITH 
        WAREHOUSE_SIZE = 'XSMALL' 
        WAREHOUSE_TYPE = 'STANDARD' 
        AUTO_SUSPEND = 300 
        AUTO_RESUME = TRUE 
        MIN_CLUSTER_COUNT = 1 
        MAX_CLUSTER_COUNT = 2 
        SCALING_POLICY = 'STANDARD';
    
    --grant rights to the warehouse
    GRANT USAGE ON WAREHOUSE purview_wh TO ROLE purview_reader;
    
  3. 为 Microsoft Purview 扫描创建用户 purview

    CREATE OR REPLACE USER purview 
        PASSWORD = '<password>'; 
    
    --note the default role will be used during scan
    ALTER USER purview SET DEFAULT_ROLE = purview_reader;
    
    --add user to purview_reader role
    GRANT ROLE purview_reader TO USER purview;
    
  4. 授予数据库对象的读取者权限。

    GRANT USAGE ON DATABASE <your_database_name> TO purview_reader;
    
    --grant reader access to all the database structures that purview can currently scan
    GRANT USAGE ON ALL SCHEMAS IN DATABASE <your_database_name> TO role purview_reader;
    GRANT USAGE ON ALL FUNCTIONS IN DATABASE <your_database_name> TO role purview_reader;
    GRANT USAGE ON ALL PROCEDURES IN DATABASE <your_database_name> TO role purview_reader;
    GRANT SELECT ON ALL TABLES IN DATABASE <your_database_name> TO role purview_reader;
    GRANT SELECT ON ALL VIEWS IN DATABASE <your_database_name> TO role purview_reader;
    GRANT USAGE, READ on ALL STAGES IN DATABASE <your_database_name> TO role purview_reader;
    
    --grant reader access to any future objects that could be created
    GRANT USAGE ON FUTURE SCHEMAS IN DATABASE <your_database_name> TO role purview_reader;
    GRANT USAGE ON FUTURE FUNCTIONS IN DATABASE <your_database_name> TO role purview_reader;
    GRANT USAGE ON FUTURE PROCEDURES IN DATABASE <your_database_name> TO role purview_reader;
    GRANT SELECT ON FUTURE TABLES IN DATABASE <your_database_name> TO role purview_reader;
    GRANT SELECT ON FUTURE VIEWS IN DATABASE <your_database_name> TO role purview_reader;
    GRANT USAGE, READ ON FUTURE STAGES IN DATABASE <your_database_name> TO role purview_reader;
    

注册

本部分介绍如何使用 Microsoft Purview 治理门户在 Microsoft Purview 中注册 Snowflake。

注册步骤

若要在数据目录中注册新的 Snowflake 源,请执行以下步骤:

  1. 在 Microsoft Purview 治理门户中导航到 Microsoft Purview 帐户。
  2. 在左侧导航中选择“ 数据映射 ”。
  3. 选择 “注册”
  4. 在“注册源”上,选择“ Snowflake”。 选择 继续

在“ (Snowflake) 注册源 ”屏幕上,请执行以下步骤:

  1. 输入数据源将在目录中列出的 名称

  2. 以 的形式输入用于连接到 Snowflake 帐户的服务器 <account_identifier>.snowflakecomputing.comURL,orgname-accountname.snowflakecomputing.com例如 。 详细了解 Snowflake 帐户标识符

  3. 选择集合或创建新集合 (可选)

  4. 完成以注册数据源。

    注册源选项

扫描

按照以下步骤扫描 Snowflake 以自动识别资产。 有关一般扫描的详细信息,请参阅 扫描和引入简介

扫描身份验证

Snowflake 源支持的身份验证类型为 基本身份验证

创建并运行扫描

若要创建并运行新的扫描,请执行以下步骤:

  1. 如果服务器可公开访问,请跳到步骤 2。 否则,需要确保已配置自承载集成运行时:

    1. Microsoft Purview 治理门户中,转到管理中心,然后选择“ 集成运行时”。
    2. 确保自承载集成运行时可用。 如果未设置,请使用 此处 提到的步骤设置自承载集成运行时。
  2. Microsoft Purview 治理门户中,导航到 “源”。

  3. 选择已注册的 Snowflake 源。

  4. 选择“ + 新建扫描”。

  5. 提供以下详细信息:

    1. 名称:扫描的名称

    2. 通过集成运行时进行连接:如果服务器可公开访问,请选择 Azure 自动解析的集成运行时;如果配置的自承载集成运行时未公开可用,请选择该运行时。

    3. 凭据:选择要连接到数据源的凭据。 请确保:

      • 创建凭据时选择“ 基本身份验证 ”。
      • 在“用户名”输入字段中提供用于连接到 Snowflake 的用户名。
      • 将用于连接到 Snowflake 的用户密码存储在密钥中。
    4. 仓库:指定用于在大写情况下支持扫描的仓库实例的名称。 分配给凭据中指定的用户的默认角色必须对此仓库具有 USAGE 权限。

    5. 数据库:指定要以大写形式导入的一个或多个数据库实例名称。 使用分号 (;) 分隔列表中的名称。 例如,db1;db2。 分配给凭据中指定的用户的默认角色必须对数据库对象具有足够的权限。

      使用 SQL LIKE 表达式语法的可接受数据库名称模式包括使用 %。 例如: A%;%B;%C%;D

      • 从 A 或 开始
      • 以 B 或 结尾
      • 包含 C 或
      • 等于 D
    6. 架构:列出要导入的架构子集,表示为分号分隔列表。 例如,schema1;schema2。 如果该列表为空,则导入所有用户架构。 默认情况下,将忽略所有系统架构和对象。

      使用 SQL LIKE 表达式语法的可接受架构名称模式包括使用 %。 例如: A%;%B;%C%;D

      • 从 A 或 开始
      • 以 B 或 结尾
      • 包含 C 或
      • 等于 D

      不能接受使用 NOT 和特殊字符。

    7. 存储过程详细信息:控制从存储过程导入的详细信息数:

      • 签名 (默认) :存储过程的名称和参数。
      • 代码、签名:存储过程的名称、参数和代码。
      • 世系、代码、签名:存储过程的名称、参数和代码,以及派生自代码的数据世系。
      • 无:不包括存储过程详细信息。

      注意

      如果使用自承载Integration Runtime进行扫描,则自版本 5.30.8541.1 起支持默认签名以外的自定义设置。 早期版本始终提取存储过程的名称和参数。

    8. 使用自承载集成运行时) 时,最大可用内存 (适用:扫描进程) 客户 VM 上可用的最大内存 ((GB)。 这取决于要扫描的 Snowflake 源的大小。

      注意

      作为经验法则,请为每 1000 个表提供 1GB 内存。

      扫描 Snowflake

  6. 选择“测试连接”以验证使用 Azure Integration Runtime) 时可用的设置 (。

  7. 选择 继续

  8. 选择用于分类的 扫描规则集 。 可以在系统默认规则集和现有自定义规则集之间进行选择,也可以内联 创建新的规则集 。 有关详细信息,请查看 分类 一文。

    注意

    如果使用自承载运行时,则需要升级到版本 5.26.404.1 或更高版本才能使用 Snowflake 分类。 可 在此处找到最新版本的 Microsoft 集成运行时。

  9. 选择 扫描触发器。 可以设置计划或运行扫描一次。

  10. 查看扫描并选择“ 保存并运行”。

查看扫描和扫描运行

查看现有扫描:

  1. 转到 Microsoft Purview 治理门户。 在左窗格中,选择“ 数据映射”。
  2. 选择数据源。 可以在“最近扫描”下查看该数据源上的现有 扫描列表,也可以在“扫描”选项卡上查看所有 扫描
  3. 选择要查看的结果的扫描。 窗格显示之前的所有扫描运行,以及每个扫描运行的状态和指标。
  4. 选择运行 ID 以检查扫描运行详细信息

管理扫描

若要编辑、取消或删除扫描,请执行以下操作:

  1. 转到 Microsoft Purview 治理门户。 在左窗格中,选择“ 数据映射”。

  2. 选择数据源。 可以在“最近扫描”下查看该数据源上的现有 扫描列表,也可以在“扫描”选项卡上查看所有 扫描

  3. 选择要管理的扫描。 然后,可以:

    • 通过选择“编辑扫描 ”来编辑扫描
    • 选择“取消扫描运行”, 取消正在进行的扫描
    • 通过选择“删除扫描” 来删除扫描

注意

  • 删除扫描不会删除从以前的扫描创建的目录资产。
  • 如果源表已更改,并且你在 Microsoft Purview 的“ 架构 ”选项卡上编辑说明后重新扫描源表,则资产将不再使用架构更改进行更新。

血统

扫描 Snowflake 源后,可以 浏览数据目录搜索数据目录 以查看资产详细信息。

转到“资产 -> 世系”选项卡,可以看到资产关系(如果适用)。 有关支持的 Snowflake 世系方案,请参阅支持 的功能 部分。 有关世系的一般信息,请参阅 数据世系世系用户指南

雪花世系视图

注意

如果视图是由不同数据库中的表创建的,请使用分号 (;) 列表中的名称同时扫描所有数据库。

疑难解答提示

  • 在源注册步骤中检查帐户标识符。 不要在前面包含 https:// 部件。
  • 确保扫描设置页上的仓库名称和数据库名称为大写字母。
  • 检查密钥保管库。 请确保密码中没有拼写错误。
  • 检查在 Microsoft Purview 中设置的凭据。 指定的用户必须具有默认角色,该角色对仓库和要扫描的数据库具有必要的访问权限。 请参阅 扫描所需的权限。 使用 DESCRIBE USER; 验证为 Microsoft Purview 指定的用户的默认角色。
  • 使用 Snowflake 中的查询历史记录查看是否有任何活动发生。
    • 如果帐户标识器或密码有问题,则不会看到任何活动。
    • 如果默认角色存在问题,至少应看到语句 USE WAREHOUSE . . .
    • 可以使用 QUERY_HISTORY_BY_USER 表函数 来确定连接正在使用的角色。 设置专用的 Microsoft Purview 用户可更轻松地进行故障排除。

后续步骤

注册源后,请按照以下指南详细了解 Microsoft Purview 和数据。