ibm.infosvr-metadata-asset-manager

ansible-role-infosvr-metadata-asset-manager

用于通过 IBM Metadata Asset Manager 代理和桥接自动部署元数据的 Ansible 角色。

对 Ansible 不熟悉?这个 简单介绍 可能会对你有帮助。

需求

  • Ansible v2.4.x
  • 具有 'dsadm' 权限的网络访问 IBM 信息服务器环境
  • 库存组名称设置与 IBM.infosvr 角色相同

角色变量

请查看 defaults/main.yml 以获取内联文档,并参考下面的示例获取所需的主要变量。

每个代理和桥接都有自己独特的参数集。这些在 vars/ 下的每个 YAML 文件中有更详细的文档,而所有代理和桥接的基本要求在 vars/simple_examples.yml 中有记录。随着时间的推移,目标是让所有代理和桥接都能正常工作,但列表会逐步增加——期待在给定版本的角色中,只有 vars/ 中包含的代理和桥接是可工作的。

示例剧本

该角色主要用于根据需要导入到其他剧本中,以便通过信息服务器环境中任何受支持的代理和桥接来部署元数据。(因此需要 Ansible v2.4.x 和 import_role 模块。)

以下示例将执行:

  1. 将与信息服务器一起提供的 DB2 驱动程序添加到 JDBC 配置。
  2. 创建一个名为 AutoJDBC 的数据连接(如果尚不存在)以连接到名为 MYDB 的 DB2 数据库,地址为 myhost.somewhere.com。(需要信息服务器 v11.7 及以上版本)
  3. 创建一个导入区域,并运行导入,导入位于信息服务器引擎层文件系统中 /data/loadable 路径下的任何文件的元数据(并记录发现它们的主机名为 'IS-SERVER.IBM.COM')。
  4. 针对 MYDBDB2INST1 模式,在 AutoJDBC 连接上自动导入任何元数据(例如,表、列),然后对这些数据运行列分析、自动检测术语分配、进行数据质量分析,并完成后将任何结果发布到信息治理目录。(需要信息服务器 v11.7 及以上版本)

请注意,变量的定义顺序并不重要——该角色会自动处理它们的适当运行顺序,以确保依赖对象先运行(例如,在尝试通过数据连接或导入区域进行任何数据连接之前,先完成 JDBC 配置)。

- import_role: name=IBM.infosvr-metadata-asset-manager
  vars:
    import_areas:
      - name: Simple_LocalFileConnector_ImportArea
        type: LocalFileConnector
        description: "一个简单的示例(仅设置所需字段)的 LocalFileConnector 导入区域"
        metadata_interchange_server: myhost.domain.com
        dcn:
          name: LOCALFS
        assets_to_import:
          - "folder[/data/loadable]"
        hostname: "IS-SERVER.IBM.COM"
    jdbc_entries:
      classpaths:
        - /opt/IBM/InformationServer/ASBNode/lib/java/db2jcc.jar
      classnames:
        - com.ibm.db2.jcc.DB2Driver
    data_connections:
      - name: AutoJDBC
        type: JDBCConnector
        description: 自动发现 JDBC 源的数据连接
        url: jdbc:db2://myhost.somewhere.com:50000/MYDB
        username: db2inst1
        password: "{{ a_password_from_eg_vault }}"
    discover_sources:
      - dcn: AutoJDBC
        project: UGDefaultWorkspace
        target_host: myhost.somewhere.com
        steps:
          - import
          - columnAnalysis
          - termAssignment
          - dataQualityAnalysis
          - publish
        parameters:
          rootAssets: schema[MYDB|DB2INST1]
          Asset_description_already_exists: Replace_existing_description

可用变量

import_areas

使用这个变量提供一个复杂结构的列表(数组),每个结构定义一个用于元数据资产管理器的导入区域。如果导入区域尚不存在,它将被创建并加载;如果同名的导入区域已存在,将重新导入其元数据(导入区域不会被替换)。

完整文档的示例结构可以在 vars/documented_*.yml 中找到。简单结构可以在 vars/simple_examples.yml 中找到。

data_connections

仅适用于 v11.7 及以上版本,使用此变量定义数据连接而不是完整的导入区域。例如,当你想使用 v11.7 及以上版本提供的自动发现功能时(即利用开放发现框架的能力来收集元数据,然后进行自动列分析等)。

odbc_entries

使用此变量定义应添加到 {DSHOME}/.odbc.ini 文件中的任何 ODBC 条目。这样可以确保通过 ODBC 进行适当的连接,例如通过数据集市和 IMAM 中的 ODBC 连接。

通常,每个对象中需要的键包括:

  • name:ODBC 条目的(唯一)名称
  • description:ODBC 条目的描述(不得在任何地方使用字符 =
  • type:ODBC 条目的类型,可以选择 db2、dbase、informix、oracle、oraclewire、sqlserver、sqlservernative、sybase、sybaseiq、salesforce、text、teradata、openedge、mysql、postgres、greenplum、hive、impala 之一
  • database:数据库名称(对于 RDBMS 条目)
  • host:托管数据源的系统的主机名或 IP 地址
  • port:端口号(对于 RDBMS 条目)— 通常这也将默认为特定数据库类型的默认端口。

由于不同平台的每个 ODBC 驱动程序支持各种特定平台的选项,可以选择性地指定这些选项。查看 templates/odbc/*.j2 中的模板以获取可以提供的选项;任何不强制的(上面列出的)将在 ODBC 配置中自动设置为其默认值,如果你不为它们指定其他值。

最后,如果您知道要添加到特定条目的其他属性,并且这些属性没有默认值(即未在上述模板中列出),请将它们作为键值对添加到 extras 条目中。

示例

odbc_entries:
  - name: IADB on DB2
    description: 连接到 DB2 上的 IADB
    type: db2
    database: IADB
    host: infosvr.vagrant.ibm.com
  - name: 测试数据库在 Oracle 
    description: 连接到 Oracle 上某个测试数据集
    type: oracle
    database: TESTDB
    host: infosvr.vagrant.ibm.com
    SID: TESTDB
    extras:
      - QueryTimeout: -1
      - ColumnSizeAsCharacter: 1
      - ColumnsAsChar: 1

jdbc_entries

使用此变量定义应包含在 {DSHOME}/isjdbc.config 文件中的任何 JDBC 类。这是在数据集市和 IMAM 中确保通过 JDBC 进行适当连接所必需的。

需要两个子键:

  • classpaths:定义应添加到 CLASSPATH 中的 Java 类的路径,即提供 JDBC 驱动程序的路径
  • classnames:定义提供上述类路径中 JDBC 驱动程序的 Java 类名

该角色将确保任何未包含在配置文件中的类路径或类名被添加,并将保留任何已存在的。

示例

jdbc_entries:
  classpaths:
    - "{{ ibm_infosvr_metadata_asset_mgr_install_location }}/ASBNode/lib/java/db2jcc.jar"
  classnames:
    - com.ibm.db2.jcc.DB2Driver

osh_schemas

使用此变量定义应使用的任何 DDL 文件(包含 CREATE TABLE 语句),以生成捕获与数据库表相同内容的数据文件的 OSH 模式文件。

所有参数都是必需的,除了 tables 参数——如果未指定,将为指定 ddl 中找到的每个 CREATE TABLE 语句生成一个 OSH 模式。

这将创建以下内容:

  • 每个在指定的 ddl 中的 CREATE TABLE 语句将生成一个(空)数据文件,位于指定的 dest 目录中(受可选的 tables 参数所定义的表的限制),使用指定的 fileext 作为文件扩展名。
  • 对于每个创建的空数据文件,在同一指定的 dest 目录中生成一个 OSH 模式文件,并添加 .osh 作为额外的文件扩展名。

示例

osh_schemas:
  - ddl: /some/location/MYDB.sql
    structure: "file_format: 'delimited', header: 'false'"
    recordfmt: "delim='|', final_delim=end, null_field='', charset=UTF-8"
    dest: /some/target/directory
    fileext: csv
    tables:
      - TABLE1
      - TABLE2

上面的示例将创建:

  • /some/target/directory/TABLE1.csv
  • /some/target/directory/TABLE1.csv.osh
  • /some/target/directory/TABLE2.csv
  • /some/target/directory/TABLE2.csv.osh

discover_sources

使用该变量定义应使用开放发现框架在 v11.7 及以上版本中进行的任何数据源自动发现。

每个条目所需的子键如下:

  • dcn:指定用于发现的数据连接的名称
  • project:指定用于进行发现的信息分析器项目的名称
  • target_host:指定应用于要发现的源的主机名

其余的子键是可选的:

  • parameters:提供一组子键,定义要应用于发现的附加行为或限制,例如:
    • rootAssets:定义要进行发现的资产子集(如果不指定,将发现目标上的所有资产——例如,所有目录中的所有文件,所有模式中的所有表)
    • Asset_description_already_exists:定义如何处理技术资产具有相同身份的情况
    • 具体源类型的其他参数也是可能的——请参阅信息服务器知识中心以获取更多详细信息
  • steps:指示应应用的发现过程中的步骤,包括:
    • import:发现并将源的技术元数据导入到信息治理目录
    • columnAnalysis:对源运行列分析,确定格式、值的频率分布,并检测数据类别(依赖于执行 import
    • termAssignment:尝试根据检测到的数据类别、列名和系统已学习的先前关系自动检测并分配业务术语(如果配置了)(依赖于执行 columnAnalysis),包括应用任何自动分配的数据规则
    • dataQualityAnalysis:执行一组标准质量检查,例如查找异常值,以及任何已自动分配的数据规则
    • publish:将所有其他步骤的结果发布到信息治理目录

请注意,在最后的 publish 步骤之前,所有工作均保留在信息分析器项目/工作区中的未发布状态。发布后,所有各种分析都可以被信息治理目录中的任何人看到。因此,你可能希望省略最后的 publish 步骤,以强制在信息分析器中进行审核(并手动决定是否发布)。(默认情况下,如果未指定步骤,发现将包括所有步骤_除了_ publish 步骤。)

请注意,rootAssets 格式为 schema[DBNAME|SCHEMA] 时,在 JDBC 连接上应用,DBNAME 部分可能需要特殊值(例如,对于 DB2,由于数据库在数据连接提供的 URL 中是固有的,始终要在这里提供 db2 作为 DBNAME,而不是实际的数据库名称)。

示例

discover_sources:
  - dcn: AutoJDBC
    project: UGDefaultWorkspace
    target_host: myhost.somewhere.com
    steps:
      - import
      - columnAnalysis
      - termAssignment
      - dataQualityAnalysis
      - publish
    parameters:
      rootAssets: schema[MYDB|DB2INST1]
      Asset_description_already_exists: Replace_existing_description

许可证

Apache 2.0

作者信息

克里斯托弗·格罗特

关于项目

Automates data connectivity configuration through IBM Metadata Asset Manager

安装
ansible-galaxy install ibm.infosvr-metadata-asset-manager
许可证
apache-2.0
下载
209