ibm.infosvr-metadata-asset-manager

ansible-role-infosvr-metadata-asset-manager

IBM Metadata Asset Managerを使用してメタデータのデプロイを自動化するAnsibleロールです。

Ansibleが初めてですか?このシンプルな紹介が役に立つかもしれません。

要件

  • Ansible v2.4.x
  • IBM Information Server環境への「dsadm」アクセス権
  • インベントリーグループ名は「IBM.infosvr」ロールと同じように設定

ロール変数

インラインドキュメントについてはdefaults/main.ymlを参照し、必要な主要変数の例は以下を確認してください。

各ブローカーとブリッジには独自のパラメーターがあり、これらはvars/内の各YAMLファイルで詳細にドキュメント化されています。また、すべてのブローカーとブリッジの最低限の要件はvars/simple_examples.ymlに文書化されています。すべてのブローカーとブリッジが動作する予定ですが、リストは徐々に増加するため、特定のバージョンのこのロールでvars/に含まれているものだけが動作します。

例プレイブック

このロールは、メタデータをデプロイするために他のプレイブックに必要に応じてインポートされることを主に意図しています。情報サーバー環境内のサポートされているブローカーやブリッジを通じて行います。(そのため、Ansible v2.4.xおよびimport_roleモジュールが必要です。)

以下の例は、次のことを行います:

  1. Information Serverに含まれるDB2ドライバーをJDBC設定に追加します。
  2. DB2データベースMYDBに接続するためのデータ接続AutoJDBCを作成します(まだ存在しない場合)。myhost.somewhere.comで接続します。(Information Server v11.7以上が必要)
  3. インポートエリアを作成し、情報サーバーエンジンティアのファイルシステムの/data/loadable内のファイルのメタデータをインポートします(見つかったホスト名を'IS-SERVER.IBM.COM'として記録)。
  4. AutoJDBC接続のMYDBDB2INST1スキーマのメタデータ(例えば、テーブルや列のメタデータ)を自動的にインポートし、その後、列分析を実行し、用語の割当てを自動的に検出し、データ品質分析を実行し、完了後、結果を情報ガバナンスカタログに公開します。(Information Server 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

この変数を使用して、Metadata Asset Managerのインポートエリアを定義する複雑な構造のリスト(配列)を提供します。インポートエリアがまだ存在しない場合は作成され、ロードされます。既に同じ名前のインポートエリアが存在する場合は、そのメタデータが再インポートされます(インポートエリアは置き換えられません)。

完全に文書化された例の構造はvars/documented_*.ymlで見つけることができます。簡単な構造はvars/simple_examples.ymlにあります。

data_connections

v11.7以上でのみ利用可能で、この変数を使用して完全なインポートエリアではなくデータ接続のみを定義できます。これは、たとえば、v11.7以降で利用可能な自動発見機能を利用したい場合に便利です(つまり、メタデータの収穫をパイプラインし、その後自動的に列分析を行うことなど)。

odbc_entries

この変数を使用して、{DSHOME}/.odbc.iniファイルに追加すべきODBCエントリを定義します。これは、DataStageやIMAMのODBC接続を介して適切な接続性を確保するために必要です。

通常、これらのオブジェクト内で必要なキーは次のとおりです:

  • name: ODBCエントリの(ユニークな)名前
  • description: ODBCエントリの説明(=という文字をどこにも使用しないこと)
  • type: ODBCエントリのタイプ、db2dbaseinformixoracleoraclewiresqlserversqlservernativesybasesybaseiqsalesforcetextteradataopenedgemysqlpostgresgreenplumhiveimpalaのいずれか
  • database: データベースの名前(RDBMSエントリ用)
  • host: データソースをホストするシステムのホスト名またはIPアドレス
  • port: ポート番号(RDBMSエントリ用) -- 通常、特定のデータベースタイプのデフォルトポートに設定されます

異なるプラットフォームのODBCドライバーはさまざまなプラットフォーム固有のオプションをサポートするため、これらも(オプションとして)指定できます。指定できるオプションについてはtemplates/odbc/*.j2のテンプレートを参照してください。必要でないオプション(上記のリスト)を指定しない場合、自動的にODBC設定でデフォルト値が設定されます。

最後に、特定のエントリに追加したい追加のプロパティがあり、デフォルト値がない場合(つまり、上記のテンプレートにリストされていない場合)は、extrasエントリにキーと値のペアとして追加します。

odbc_entries:
  - name: IADB on DB2
    description: IADB on DB2への接続
    type: db2
    database: IADB
    host: infosvr.vagrant.ibm.com
  - name: Test database on 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クラスを定義します。これは、DataStageやIMAMのJDBC接続を介して適切な接続性を確保するために必要です。

2つのサブキーが必要です:

  • classpaths: CLASSPATHに追加すべきJavaクラスの場所を定義します。すなわち、JDBCドライバーを提供します。
  • classnames: 上記のCLASSPATH内のJDBCドライバーを提供するJavaクラスの名前を定義します。

ロールは、すでに設定ファイルに含まれていないclasspathsやclassnamesが追加されるようにし、すでに存在するものはそのままにします。

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

osh_schemas

この変数を使用して、データファイルのためのOSHスキーマファイルを生成するためのDDLファイル(CREATE TABLE文を含む)を定義します。

すべてのパラメーターは必須ですが、tablesパラメーターはオプションです -- 指定しない場合、指定されたddl内のすべてのCREATE TABLE文に対してOSHスキーマが生成されます。

これにより、以下が作成されます:

  • 指定されたdestディレクトリ内に、指定されたddl内の各CREATE TABLE文に対して1つの(空の)データファイル(オプションのtablesパラメーターで定義されたテーブルによって制限されます)。指定されたfileextをファイル拡張子とします。
  • 作成された各空のデータファイルに対して、同じ指定されたdestディレクトリ内に1つの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: 同じ識別子を持つ特定のテクニカル資産が既に存在する場合の対処方法を定義
    • その他のパラメーターも、ソースのタイプによって可能(詳細はInformation ServerKnowledge Centreを参照)
  • steps: 発見プロセスの各ステップを適用することを示し、以下を含むことができます:
    • import: ソースの技術メタデータを発見し、情報ガバナンスカタログにインポートします
    • columnAnalysis: ソースに対して列分析を実行し、フォーマット、値の頻度分布、データクラスを検出します
    • termAssignment: 検出されたデータクラスに基づいて技術メタデータにビジネス用語を自動的に割り当てることを試みます
    • dataQualityAnalysis: 標準的な品質チェックを実施します
    • publish: その他のステップの結果を情報ガバナンスカタログに公開します

最後のpublishステップまで、すべての作業は発行されていない状態でメタ情報分析プロジェクト/ワークスペースで保持されます。一度公開されると、すべての分析は情報ガバナンスカタログで誰でも見ることができます。そのため、レビューを強制(および手動で公開する決定)するために、この最後のpublishステップを省略することをお勧めします。デフォルトでは、ステップが指定されていない場合、発見にはpublishステップを除くすべてのステップが含まれます。

また、rootAssetsschema[DBNAME|SCHEMA]形式は、JDBC接続に適用されるときにDBNAME部分に特別な値が必要な場合があります(例:DB2の場合、データベースはデータ接続の一部として提供されるURLに含まれるため、ここでは常にdb2を提供します)。

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