EgeriaのHands-On Labをやってみた 〜データカタログ管理編〜
本記事では、メタデータ・ガバナンスを実現するOSSプロジェクトEgeriaのハンズオンを実施していきます。Egeriaの概要やセットアップ方法は下記事を参照ください。
2021年6月現在の最新バージョンEgeria 2.10では、5つのハンズオンが用意されており、組織内でどういう立場の人が実施すべきかペルソナが用意されています。
- Administration Labs
- Gary Geeke(ITインフラのリーダー)
- Egeriaのプラットフォームとサーバーをどのように管理していくか?
- Asset Management Labs
- Peter Profile(アナリスト)、Erin(アーキテクト)
- Coco Pharmaceuticalのアセットのカタログを構築・管理
- Callie Quartile(データ・サイエンティスト)
- 必要なアセットの場所を特定して分析に使用するために、カタログを使用する
- Information Architecture Labs
- Erin
- Coco Pharmaceuticalsの情報標準をセットアップする
- Conformance Testing Labs
- Polly Tasker(テスター)
- Egeriaの適合テスト(conformance test)を実施し、メタデータサーバーがEgeriaのオープンメタデータプロトコルに適合するか確認する
- Asset UI Labs
- Callie Quartile
- メタデータのフローを理解するために、EgeriaのUIを利用して調査を実施す
今回はAsset Management Labsを実施していきます。EgeriaのハンズオンはJupyter Notebookで進められるようにできているので、本記事ではコードは掲載しません。どんなことが書いてあるのか?や、何がわかったのか?などを中心にダイジェストをまとめていきます。
準備
上記事のセットアップを完了させ、以下のログが表示されていることを確認して下さい。
%run common/environment-check.ipynb Checking OMAG Server Platform availability... Core Platform is active Checking OMAG Server cocoMDS2 ... cocoMDS2 is configured ... cocoMDS2 is active - ready to begin Checking OMAG Server cocoMDS3 ... cocoMDS3 is configured ... cocoMDS3 is active - ready to begin Checking OMAG Server cocoMDS5 ... cocoMDS5 is configured ... cocoMDS5 is active - ready to begin Checking OMAG Server cocoMDS6 ... cocoMDS6 is configured ... cocoMDS6 is active - ready to begin Data Lake Platform is active Checking OMAG Server cocoMDS1 ... cocoMDS1 is configured ... cocoMDS1 is active - ready to begin Checking OMAG Server cocoMDS4 ... cocoMDS4 is configured ... cocoMDS4 is active - ready to begin Checking OMAG Server cocoView1 ... cocoView1 is configured ... cocoView1 is active - ready to begin Dev Platform is active Checking OMAG Server cocoMDSx ... cocoMDSx is configured ... cocoMDSx is active - ready to begin Done.
Asset Management Labs
Asset Management Labsでは、以下の4つを実施していきます。
- Building a Data Catalog
- Automated Curation Lab
- Improving Data Quality Lab
Building a Data Catalog
このハンズオンでは、分散型データカタログを構築し、サーバー間で相互にカタログに対してフィードバック(コメント)を付与する検証を行います。また、ガバナンス・ゾーンのどのようにアセットグループに適用され、参照できるユーザーをどう管理するかについても触れていきます。
- ビジネストランスフォーメーションの一貫として、Coco Pharmaceuticalsではデータレイクを構築
- 組織間やビジネスパートナー間で、検索・分析・交換するためにデータを管理
- → センシティブデータや規制データを含め、データレイクでは様々なタイプのデータを扱えるようにデザインする必要がある
- PeterとErinは病院から受け取った新しいデータセットをカタログ化しようとしている
- データセットは、その病院が参加している臨床試験の一部のデータ
- Peterは
cocoMDS1
というデータレイク運用のメタデータサーバーを使っている- このサーバーはData Lake OMAG Server Platform上にホストされている
- Peterは新しいデータの概要をカタログに入力している
- データの概要はAssetsとしてカタログに保存される
- Assetは価値の真のリソース(a real resource of value)とし、適切に管理・利用されているか確保するために一元管理される必要がある
- 全てのAssetは、そのリソースの所有者(人 or チーム)と紐づく
- 所有者の役割は、真のリソースがどのように管理されるべきなのかを定義しするための正しい設定でAssetをセットアップすること
- この管理は、真のリソースをホストして処理するツールやプラットフォーム、エンジンによって行われる
- これらの技術がオープン・メタデータ・リポジトリと接続できる場合、設定を直接読み込んで正しいアクションが取れるようになる
- これらの技術が接続できない場合、Egeriaのガバナンスサーバー側から、それらの技術に合わせてAssetsをpushする
- Peterは新しいAssetの所有者となり、Asset Owner Open Metadata Access Service (OMAS) APIでカタログ上でAssetをセットアップします
file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csv
にある1週目のAssetデータを登録する- ディレクトリ構造もそのままメタデータとして反映される仕様
- 登録したAsset情報を内容表示する
- 5 Assetsの内、4つがディレクトリ、1つがファイル
- ディレクトリ自体は、厳密にはAssetではなく、SoftwareServerCapability
5 assets found: file://secured/research FileFolder | bb32a786-d6ef-437a-937b-2987d85a169b | file://secured/research file://secured/research/clinical-trials FileFolder | be6904d1-3c8e-4f22-b084-507c6340c7d3 | file://secured/research/clinical-trials file://secured FileFolder | 517b92d5-2f06-471b-afd8-9b7639418668 | file://secured file://secured/research/clinical-trials/drop-foot FileFolder | a9276d64-1d59-49a8-9e93-a9ac137c83ab | file://secured/research/clinical-trials/drop-foot file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csv CSVFile | e3830d70-37a0-4df3-bbdd-6f6560121dd7 | file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csv -------------------------------------- secured/research [bb32a786-d6ef-437a-937b-2987d85a169b] qualifiedName: file://secured/research type: FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- secured/research/clinical-trials [be6904d1-3c8e-4f22-b084-507c6340c7d3] qualifiedName: file://secured/research/clinical-trials type: FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- secured [517b92d5-2f06-471b-afd8-9b7639418668] qualifiedName: file://secured type: FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- secured/research/clinical-trials/drop-foot [a9276d64-1d59-49a8-9e93-a9ac137c83ab] qualifiedName: file://secured/research/clinical-trials/drop-foot type: FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- Week 1: Drop Foot Clinical Trial Measurements [e3830d70-37a0-4df3-bbdd-6f6560121dd7] qualifiedName: file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csv description: One week's data covering foot angle, hip displacement and mobility measurements. type: CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine --------------------------------------
- 続けて2週目・3週目のAssetデータも登録する
Request to create the week 2 Asset responded with: [ "7511685d-4f26-476a-847b-995b56136b39", "517b92d5-2f06-471b-afd8-9b7639418668", "bb32a786-d6ef-437a-937b-2987d85a169b", "be6904d1-3c8e-4f22-b084-507c6340c7d3", "a9276d64-1d59-49a8-9e93-a9ac137c83ab", "13c764d7-66f6-4455-9844-a32e36b27804" ] Request to create the week 3 Asset responded with: [ "7511685d-4f26-476a-847b-995b56136b39", "517b92d5-2f06-471b-afd8-9b7639418668", "bb32a786-d6ef-437a-937b-2987d85a169b", "be6904d1-3c8e-4f22-b084-507c6340c7d3", "a9276d64-1d59-49a8-9e93-a9ac137c83ab", "d37e2fc7-74b6-4aa6-a1de-81c1fe92dccf" ] Summary of the assets so far: Asset 1 GUID is: e3830d70-37a0-4df3-bbdd-6f6560121dd7 Asset 2 GUID is: 13c764d7-66f6-4455-9844-a32e36b27804 Asset 3 GUID is: d37e2fc7-74b6-4aa6-a1de-81c1fe92dccf
- ディレクトリが共通している場合、メタデータサーバー内でよしなにまとめられる
7 assets found: file://secured/research FileFolder | bb32a786-d6ef-437a-937b-2987d85a169b | file://secured/research file://secured/research/clinical-trials FileFolder | be6904d1-3c8e-4f22-b084-507c6340c7d3 | file://secured/research/clinical-trials file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek3.csv CSVFile | d37e2fc7-74b6-4aa6-a1de-81c1fe92dccf | file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek3.csv file://secured FileFolder | 517b92d5-2f06-471b-afd8-9b7639418668 | file://secured file://secured/research/clinical-trials/drop-foot FileFolder | a9276d64-1d59-49a8-9e93-a9ac137c83ab | file://secured/research/clinical-trials/drop-foot file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csv CSVFile | e3830d70-37a0-4df3-bbdd-6f6560121dd7 | file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csv file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek2.csv CSVFile | 13c764d7-66f6-4455-9844-a32e36b27804 | file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek2.csv -------------------------------------- secured/research [bb32a786-d6ef-437a-937b-2987d85a169b] qualifiedName: file://secured/research type: FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- secured/research/clinical-trials [be6904d1-3c8e-4f22-b084-507c6340c7d3] qualifiedName: file://secured/research/clinical-trials type: FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- Week 3: Drop Foot Clinical Trial Measurements [d37e2fc7-74b6-4aa6-a1de-81c1fe92dccf] qualifiedName: file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek3.csv description: One week's data covering foot angle, hip displacement and mobility measurements. type: CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- secured [517b92d5-2f06-471b-afd8-9b7639418668] qualifiedName: file://secured type: FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- secured/research/clinical-trials/drop-foot [a9276d64-1d59-49a8-9e93-a9ac137c83ab] qualifiedName: file://secured/research/clinical-trials/drop-foot type: FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- Week 1: Drop Foot Clinical Trial Measurements [e3830d70-37a0-4df3-bbdd-6f6560121dd7] qualifiedName: file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek1.csv description: One week's data covering foot angle, hip displacement and mobility measurements. type: CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- Week 2: Drop Foot Clinical Trial Measurements [13c764d7-66f6-4455-9844-a32e36b27804] qualifiedName: file://secured/research/clinical-trials/drop-foot/DropFootMeasurementsWeek2.csv description: One week's data covering foot angle, hip displacement and mobility measurements. type: CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine --------------------------------------
- 一方、Erinはガバナンスチームの一員であり、
cocoMDS2
サーバーを用いてメタデータにアクセスしようとしている - Peterの
cocoMDS1
とErinのcocoMDS2
は、同じCohortcocoCohort
に所属する- → 互いにメタデータを共有しあっている関係にある
- Erinは共有しているPeterのAssetに対して、以下のようにコメントできる
1 comment found: comment type: STANDARD_COMMENT comment text: This file has much less data than normal. Did the hospital provide any additional information about this batch to explain it? created by: erinoverview public: True
- Peter側も以下のように返信可能
1 comment found: comment type: STANDARD_COMMENT comment text: I checked back with Bobbie Records and they had an air conditioning failure that caused them to cancel patient appointments for 2 days - hence less data. They are working to catch up on their waiting list so expect increased data for the next few weeks. created by: peterprofile public: True
- このようにEgeriaは分散型データカタログを実現している
- 最後に、組織がどのようにAssetの見える範囲をコントロールするかについて
- PeterとErinの元に、リサーチチームでデータサイエンティストをやっているCallieが加わりました
- Callieは臨床試験のファイルが到着したと聞いて、すぐに分析に取り掛かろうとしている
- Callieは
cocoMDS3
サーバーを使用してファイルを探したが、何も見つからなかったcocoMDS1
はquarantine zone
と呼ばれるGovernance zoneでAssetを作成しているが、cocoMDS3
はquarantine zone
へのアクセス権がない- PeterはCallieがアクセスできるように、Callieのがアクセスできるゾーンである
data lake zone
にもAssetを登録する必要がある
Setting owner on Asset 1 to tanyatidie ... Setting owner on Asset 2 to tanyatidie ... Setting owner on Asset 3 to tanyatidie ... Setting governance zones on Asset 1 ... Setting governance zones on Asset 2 ... Setting governance zones on Asset 3 ...
- 補足
- Repository services: サーバー間のメタデータの交換を行うサーバー
- Platform services: cocoMDS1やcocoMDS2などの、Egeriaサーバーを稼働するためのプラットフォーム
Automated Curation Lab
このハンズオンでは、先ほどPeterとErinが操作していたカタログ化の手続きを自動化していきます。
- Coco Pharmaceuticalsでは、Oak Dene HospitalとOld Market Hospitalという2つの病院と臨床試験を行ってる
- 毎週、2つの病院が試験に参加した患者の診断情報をCoco Pharmaceuticalsへ送る
- 診断情報は、Coco Pharmaceuticalのランディング用のフォルダへセキュアに転送されるCSVファイル
- これらのファイルは、データレイクへコピーされ、臨床試験に参加したスタッフのみに見えるようカタログ化される
- これらのファイルの関係性(リネージ)を維持することも重要
- PeterとErinは、自動化要件を以下のように定義
- ファイルがランディングエリアに存在する時間は最小限に抑える
- 新しいファイルが到着したらすぐに、以下の項目をカタログ化する
- 概要
- データサイエンティストがコンテンツにアクセスするための接続情報
- カラムの詳細
- そのファイルが見えるGovernance zones
- 所有者
- 起源
- カタログ処理が完了するまで、どのデータレイクユーザーもファイルへのアクセスは不可
- それぞれの臨床試験のリネージを記録し、どの病院からきたのかを把握する
exchangeDL01
: ファイルのテクニカルメタデータをキャプチャするIntegration DaemongovernDL01
: データレイクへのファイル移動や、メタデータの増大、リネージの生成を管理するEngine Host Server- 図にすると以下のとおり
-
- Governance Action ServiceのMove/Copy Fileで、ファイルを持ってくる
-
- ランディングエリアで、ファイルをカタログ化するためのテンプレートを作成する
-
- ランディングフォルダにファイルが現れたら、Governance Action Processをトリガする
-
- Governance Action Processで、ファイルをデータレイクフォルダに移動する
-
- データレイクフォルダで、ファイルをカタログ化するためのテンプレートを作成する
-
- Governance Action Serviceで、メタデータを拡充させる
-
- 各サーバーの関係性は以下の通り
- まずは、でフォルダ内に存在しているファイルをカタログ化するIntegration Daemonを操作する
- Integration Daemonのステータスを確認
One integration service defined for integration daemon exchangeDL01 Integration Service: Files Integrator OMIS Integration Connector Reports: Integration Connector: OakDeneLandingAreaFilesMonitor status: FAILED failingExceptionMessage: BASIC-FILES-INTEGRATION-CONNECTORS-404-001 The directory named data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot does not exist Integration Connector: OldMarketLandingAreaFilesMonitor status: FAILED failingExceptionMessage: BASIC-FILES-INTEGRATION-CONNECTORS-404-001 The directory named data/landing-area/hospitals/old-market/clinical-trials/drop-foot does not exist Integration Connector: DropFootClinicalTrialResultsFolderMonitor status: FAILED failingExceptionMessage: BASIC-FILES-INTEGRATION-CONNECTORS-404-001 The directory named data/data-lake/research/clinical-trials/drop-foot/weekly-measurements does not exist
- 監視対象のディレクトリ名(フォルダ名)が存在していないため、3つのファイルコネクタが全て
FAILED
となっている - Move/Copy File Governance Action Serviceで、病院からランディングエリアのフォルダへファイル転送をシミュレートする
- このサービスは、Governance Action Open Metadata Engine Service (OMES)がサポートされるGovernance Engineの中で実行される
- APIで使用可能
- コネクタ(コネクション・オブジェクト)として実行される
- 細かく設定が可能
Move/Copy File Governance Action Service: connectorType: guid: e2a14ca8-57b1-48d7-9cc4-d0b44983ca79 qualifiedName: Egeria:GovernanceActionService:Provisioning:MoveCopyFile displayName: Move or Copy File Governance Action Service description: Provisioning Governance Action Service that moves or copies files on request. connectorProviderClassName: org.odpi.openmetadata.adapters.connectors.governanceactions.provisioning.MoveCopyFileGovernanceActionProvider recognizedConfigurationProperties: - targetFileNamePattern - noLineage - topLevelProcessQualifiedName - topLevelProcessTemplateQualifiedName - destinationFileTemplateQualifiedName - destinationFolder - topLevelProcessLineageOnly - lineageFromSourceFolderOnly - lineageToDestinationFolderOnly supportedRequestTypes: - copy-file - move-file - delete-file supportedRequestParameters: - sourceFile - destinationFolder supportedActionTargetNames: - sourceFile - destinationFolder supportedGuards: - provisioning-complete - provisioning-failed
- ファイル転送のシミュレーションの前に、
Move/Copy File
の設定を行う - 下の図とスニペットは
governDL01
サーバーで設定した3つのGovernance Engineの関係性について
3 governance engines defined for engine host server governDL01 Governance Engine: AssetQuality supporting service: Asset Analysis OMES status: ASSIGNED Governance Engine: AssetDiscovery supporting service: Asset Analysis OMES status: ASSIGNED Governance Engine: AssetGovernance supporting service: Governance Action OMES status: ASSIGNED
- Engine Hostがまだ
cocoMDS2
サーバーから設定情報を取得できていないので、AssetGovernance
に対するGovernance Engineの定義を加える
3 governance engines defined for engine host server governDL01 Governance Engine: AssetQuality supporting service: Asset Analysis OMES status: ASSIGNED Governance Engine: AssetDiscovery supporting service: Asset Analysis OMES status: ASSIGNED Governance Engine: AssetGovernance type: GovernanceActionEngine supporting service: Governance Action OMES status: CONFIGURING guid: 98c156b5-d8fe-4c62-ab34-f25140572f48 description: Monitors, validates and enriches metadata relating to assets.
AssetGovernance
のステータスがCONFIGURING
となる- 次に、
Move/Copy File
の概要をcocoMDS2
に加える- Governance Serviceの定義を作成して登録する
- 登録の際に、Governance Engineへの呼び出しをGovernance Action Serviceへの呼び出しに変換するための、一つ以上のRequest Typeのマッピングうぃ作成する
- 下図は、Governance Engine、Governance Service、Request Typeの関係性を表した図
- Governance Serviceの定義を作成し、
AssetGovernance GovernanceEngine
の定義に追加する
The guid for the ftp-governance-action-service governance service is: 8c66dd3f-99b3-4203-b756-cdff119c9848 Service registered as: copy-file
- Governance Serviceが登録されると、
governDL01
のGovernance EngineのステータスがRUNNING
へ変わる- → Governance EngineのRequest Typeが一覧として見えるようになる
3 governance engines defined for engine host server governDL01 Governance Engine: AssetQuality supporting service: Asset Analysis OMES status: ASSIGNED Governance Engine: AssetDiscovery supporting service: Asset Analysis OMES status: ASSIGNED Governance Engine: AssetGovernance type: GovernanceActionEngine supporting service: Governance Action OMES status: RUNNING guid: 98c156b5-d8fe-4c62-ab34-f25140572f48 description: Monitors, validates and enriches metadata relating to assets. requestTypes: - copy-file
- 定義したGovernance Action Serviceは、Governance Engine OMAS、今回では
cocoMDS2
を通して呼ばれる - API呼び出しは、Governance Engineを稼働している全てのEngine Hostに送信されるイベントとなる
- 今回はEngine Hostが1つだけのため、リクエストは
governDL01
上で処理される
- 今回はEngine Hostが1つだけのため、リクエストは
- 実際にGovernance Actionを実行した結果が以下の通り
... Waiting for completion status change ... Waiting for completion status change ... Waiting for completion status change { "class": "GovernanceActionProperties", "qualifiedName": "FTP Oak Dene Week 1", "domainIdentifier": 0, "governanceEngineGUID": "98c156b5-d8fe-4c62-ab34-f25140572f48", "governanceEngineName": "AssetGovernance", "requestType": "copy-file", "requestParameters": { "destinationFolder": "data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot", "sourceFile": "./sample-data/oak-dene-drop-foot-weekly-measurements/week1.csv" }, "actionStatus": "ACTIONED", "startTime": "2021-07-04T04:39:03.887+00:00", "processingEngineUserId": "governDL01npa", "completionTime": "2021-07-04T04:39:08.243+00:00", "completionGuards": [ "provisioning-complete" ] }
- 再度コネクタのステータスを確認すると、
FAILED
からRUNNING
へと変わっている
One integration service defined for integration daemon exchangeDL01 Integration Service: Files Integrator OMIS Integration Connector Reports: Integration Connector: OakDeneLandingAreaFilesMonitor status: RUNNING lastStatusChange: 2021-07-04T04:42:15.883+00:00 lastRefreshTime: 2021-07-04T04:42:22.246+00:00 minMinutesBetweenRefresh: 10 Integration Connector: OldMarketLandingAreaFilesMonitor status: FAILED failingExceptionMessage: BASIC-FILES-INTEGRATION-CONNECTORS-404-001 The directory named data/landing-area/hospitals/old-market/clinical-trials/drop-foot does not exist Integration Connector: DropFootClinicalTrialResultsFolderMonitor status: FAILED failingExceptionMessage: BASIC-FILES-INTEGRATION-CONNECTORS-404-001 The directory named data/data-lake/research/clinical-trials/drop-foot/weekly-measurements does not exist
- コネクタはディレクトリに配置される全てのファイルをカタログ化するようになる
- Governance Actionで配置した
week1.csv
がカタログから参照できるようになっている
6 assets found: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv CSVFile | 86c7713d-3b60-4715-963b-45c0356fa9ef | /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv deployments/data/landing-area/hospitals FileFolder | 5bc2cef1-485b-474d-9410-2bd90a637bff | deployments/data/landing-area/hospitals deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot FileFolder | d628c37e-467c-4eeb-a71c-cb1386c08f81 | deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot deployments/data/landing-area FileFolder | c0dafe80-1a58-48cf-92bc-f172058d1fd1 | deployments/data/landing-area deployments/data/landing-area/hospitals/oak-dene FileFolder | 602b186e-b1d0-4612-87ad-c69def6242fa | deployments/data/landing-area/hospitals/oak-dene deployments/data/landing-area/hospitals/oak-dene/clinical-trials FileFolder | c2b56902-9945-4c46-95be-e3d892126fa8 | deployments/data/landing-area/hospitals/oak-dene/clinical-trials -------------------------------------- week1.csv [86c7713d-3b60-4715-963b-45c0356fa9ef] qualifiedName: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv type: CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- deployments/data/landing-area/hospitals [5bc2cef1-485b-474d-9410-2bd90a637bff] qualifiedName: deployments/data/landing-area/hospitals type: FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot [d628c37e-467c-4eeb-a71c-cb1386c08f81] qualifiedName: deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot type: FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- deployments/data/landing-area [c0dafe80-1a58-48cf-92bc-f172058d1fd1] qualifiedName: deployments/data/landing-area type: FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- deployments/data/landing-area/hospitals/oak-dene [602b186e-b1d0-4612-87ad-c69def6242fa] qualifiedName: deployments/data/landing-area/hospitals/oak-dene type: FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- deployments/data/landing-area/hospitals/oak-dene/clinical-trials [c2b56902-9945-4c46-95be-e3d892126fa8] qualifiedName: deployments/data/landing-area/hospitals/oak-dene/clinical-trials type: FileFolder [DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine --------------------------------------
- カタログ化では、通常はファイルシステムから取得できる最低限の情報しか定義できない
- → コネクタにテンプレートを用意することで、期限や信頼性、スキーマ情報などを含めることができる
- → Templated cataloging
exchangeDL01
のコネクタは以下の通り
Data Files Monitor Integration Connector Type: guid: bbbd2213-dee1-4a21-8951-68f0f6d35eb7 qualifiedName: Egeria:IntegrationConnector:Files:DataFilesMonitor displayName: Data Files Monitor Integration Connector description: Connector supports cataloguing of files under a specific directory (folder) in the file system. connectorProviderClassName: org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFilesMonitorIntegrationProvider recognizedConfigurationProperties: - templateQualifiedName - allowCatalogDelete Data Folder Monitor Integration Connector Type: guid: 6718d248-5e0c-4e32-9d38-187318caea70 qualifiedName: Egeria:IntegrationConnector:Files:DataFolderMonitor displayName: Data Folder Monitor Integration Connector description: Connector maintains a DataFolder asset by monitoring the file directory where it is located. connectorProviderClassName: org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFolderMonitorIntegrationProvider recognizedConfigurationProperties: - templateQualifiedName - allowCatalogDelete
templateQualifiedName
に、データ元の病院とquarantine
のGovernance Zoneのメンバーシップを設定する- 加えて、データレイクフォルダに対してもテンプレートを作成する
Setting origin on Oak Dene Template ... Setting governance zones on Oak Dene Template ... Setting origin on Old Market Template ... Setting governance zones on Old Market Template ... Setting owner on Data Lake Measurements Template to tanyatidie ... Setting governance zones on Data Lake Measurements Template ... NewTemplate Assets: 3 assets found: template:clinical-trials:drop-foot:weekly-measurements:data-lake CSVFile | 856c0270-85e5-43e9-830a-a3db6feb06f0 | template:clinical-trials:drop-foot:weekly-measurements:data-lake template:clinical-trials:drop-foot:weekly-measurements:old-market CSVFile | e6d253b1-2f7f-4a2f-b224-2b7f32841169 | template:clinical-trials:drop-foot:weekly-measurements:old-market template:clinical-trials:drop-foot:weekly-measurements:oak-dene CSVFile | cec67c2b-ba2d-4cd1-9331-254193d385a2 | template:clinical-trials:drop-foot:weekly-measurements:oak-dene -------------------------------------- Drop Foot Clinical Trial Measurements Template Asset: Data Lake [856c0270-85e5-43e9-830a-a3db6feb06f0] qualifiedName: template:clinical-trials:drop-foot:weekly-measurements:data-lake description: Template asset for Data Lake destination folder. type: CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- Drop Foot Clinical Trial Measurements Template Asset: Old Market [e6d253b1-2f7f-4a2f-b224-2b7f32841169] qualifiedName: template:clinical-trials:drop-foot:weekly-measurements:old-market description: Template asset for Old Market Hospital. type: CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot] origin: contact=TBD, dept=DFRG1F6, org=Old Market Hospital zones: quarantine -------------------------------------- Drop Foot Clinical Trial Measurements Template Asset: Oak Dene [cec67c2b-ba2d-4cd1-9331-254193d385a2] qualifiedName: template:clinical-trials:drop-foot:weekly-measurements:oak-dene description: Template asset for Oak Dene Hospital. type: CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot] origin: contact=Robbie Records, dept=Drop Foot Research Centre, org=Oak Dene Hospital zones: quarantine --------------------------------------
- 新しいファイル
week2.csv
を転送すると、カタログ情報が自動で追加されていることが確認できる
... Waiting for completion status change ... Waiting for completion status change { "class": "GovernanceActionProperties", "qualifiedName": "FTP Oak Dene Week 2", "domainIdentifier": 0, "governanceEngineGUID": "98c156b5-d8fe-4c62-ab34-f25140572f48", "governanceEngineName": "AssetGovernance", "requestType": "copy-file", "requestParameters": { "destinationFolder": "data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot", "sourceFile": "./sample-data/oak-dene-drop-foot-weekly-measurements/week2.csv" }, "actionStatus": "ACTIONED", "startTime": "2021-07-04T06:48:45.594+00:00", "processingEngineUserId": "governDL01npa", "completionTime": "2021-07-04T06:48:48.165+00:00", "completionGuards": [ "provisioning-complete" ] } 2 assets found: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv CSVFile | 86c7713d-3b60-4715-963b-45c0356fa9ef | /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week2.csv DataFile | efae08ba-e0ec-45d8-9eef-3106b506e49a | /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week2.csv -------------------------------------- week1.csv [86c7713d-3b60-4715-963b-45c0356fa9ef] qualifiedName: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv type: CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- week2.csv [efae08ba-e0ec-45d8-9eef-3106b506e49a] qualifiedName: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week2.csv type: DataFile [DataStore, Asset, Referenceable, OpenMetadataRoot] origin: contact=Robbie Records, dept=Drop Foot Research Centre, org=Oak Dene Hospital zones: quarantine --------------------------------------
GenericFolderWatchdog
を作成し、ランディングエリアに配置されるAssetリスンする
Generic Folder Watchdog Governance Action Service: connectorType: guid: b4629f05-710c-492b-bc9c-6e3f89e002df qualifiedName: Egeria:GovernanceActionService:Watchdog:GenericFolder displayName: Generic Folder Watchdog Governance Action Service description: Watchdog Governance Action Service that listens for events relating to file assets located in a particular folder. connectorProviderClassName: org.odpi.openmetadata.adapters.connectors.governanceactions.watchdog.GenericFolderWatchdogGovernanceActionProvider recognizedConfigurationProperties: - folderName - actionTargetName - actionTargetNameTwo - newElementProcessName - updatedElementProcessName - deletedElementProcessName - classifiedElementProcessName - reclassifiedElementProcessName - declassifiedElementProcessName supportedRequestTypes: - member-of-folder - nested-in-folder supportedRequestParameters: - ChangedProperties - actionTargetName - actionTargetNameTwo - folderName - newElementProcessName - updatedElementProcessName - deletedElementProcessName - classifiedElementProcessName - reclassifiedElementProcessName - declassifiedElementProcessName supportedActionTargetNames: - folderTarget supportedGuards: - monitoring-complete - monitoring-failed
Governance Action Process
を組むことによって、一連のGovernance Actionを繋げることができる- 最初のProcessでは、
Move/Copy File
でファイルを移動する Move/Copy File
で移動したファイルを追跡し、リネージを維持できるように、OriginSeeker
も作成する
Origin Seeker Remediation Governance Action Service: connectorType: guid: 1c6939c4-de2c-44aa-a044-0ec64df0560f qualifiedName: Egeria:GovernanceActionService:Remediation:OriginSeeker displayName: Origin Seeker Governance Action Service description: Follows the lineage mapping for an action target element to determine its origin. connectorProviderClassName: org.odpi.openmetadata.adapters.connectors.governanceactions.remediation.OriginSeekerGovernanceActionProvider supportedGuards: - origin-assigned - origin-already-assigned - multiple-origins-detected - no-origins-detected - no-targets-detected - multiple-targets-detected - origin-seeking-failed
- Processの最後にAssetをデータレイクユーザーも見れるよう公開する
ZonePublisher
を追加する
Zone Publisher Remediation Governance Action Service: connectorType: guid: add1ff1b-d32d-42e7-9ebf-a2d26276aafe qualifiedName: Egeria:GovernanceActionService:Remediation:ZonePublisher displayName: Zone Publisher Governance Action Service description: Assigns the configured zone(s) to the requested asset. connectorProviderClassName: org.odpi.openmetadata.adapters.connectors.governanceactions.remediation.ZonePublisherGovernanceActionProvider recognizedConfigurationProperties: - publishZones supportedRequestParameters: - publishZones supportedGuards: - zone-assigned - no-zones-detected - no-targets-detected - zone-publishing-failed
- 結果、Asset Governanceの登録状態は以下の通り
3 governance engines defined for engine host server governDL01 Governance Engine: AssetQuality supporting service: Asset Analysis OMES status: ASSIGNED Governance Engine: AssetDiscovery supporting service: Asset Analysis OMES status: ASSIGNED Governance Engine: AssetGovernance type: GovernanceActionEngine supporting service: Governance Action OMES status: RUNNING guid: 98c156b5-d8fe-4c62-ab34-f25140572f48 description: Monitors, validates and enriches metadata relating to assets. requestTypes: - move-file - copy-file - seek-origin - set-zone-membership
- Week3のファイルに対して転送を実行すると、データレイクでの公開まで自動化されている
... Waiting for completion status change ... Waiting for completion status change ... Waiting for completion status change ... Waiting for completion status change { "class": "GovernanceActionProperties", "qualifiedName": "FTP Oak Dene Week 3", "domainIdentifier": 0, "governanceEngineGUID": "98c156b5-d8fe-4c62-ab34-f25140572f48", "governanceEngineName": "AssetGovernance", "requestType": "copy-file", "requestParameters": { "destinationFolder": "data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot", "sourceFile": "./sample-data/oak-dene-drop-foot-weekly-measurements/week3.csv" }, "actionStatus": "ACTIONED", "startTime": "2021-07-04T08:52:04.210+00:00", "processingEngineUserId": "governDL01npa", "completionTime": "2021-07-04T08:52:08.944+00:00", "completionGuards": [ "provisioning-complete" ] } 3 assets found: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv CSVFile | 86c7713d-3b60-4715-963b-45c0356fa9ef | /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week2.csv DataFile | efae08ba-e0ec-45d8-9eef-3106b506e49a | /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week2.csv /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week3.csv DataFile | d59888fb-5a32-4f7e-af99-e74ca3d31671 | /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week3.csv -------------------------------------- week1.csv [86c7713d-3b60-4715-963b-45c0356fa9ef] qualifiedName: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week1.csv type: CSVFile [DataFile, DataStore, Asset, Referenceable, OpenMetadataRoot] zones: quarantine -------------------------------------- week2.csv [efae08ba-e0ec-45d8-9eef-3106b506e49a] qualifiedName: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week2.csv type: DataFile [DataStore, Asset, Referenceable, OpenMetadataRoot] origin: contact=Robbie Records, dept=Drop Foot Research Centre, org=Oak Dene Hospital zones: quarantine -------------------------------------- week3.csv [d59888fb-5a32-4f7e-af99-e74ca3d31671] qualifiedName: /deployments/data/landing-area/hospitals/oak-dene/clinical-trials/drop-foot/week3.csv type: DataFile [DataStore, Asset, Referenceable, OpenMetadataRoot] origin: contact=Robbie Records, dept=Drop Foot Research Centre, org=Oak Dene Hospital zones: quarantine --------------------------------------
Improving Data Quality Lab
このハンズオンでは、Assetについてのメタデータを自動で分析・生成するMetadata Discoveryについて扱っていきます。
- Open Discovery Framework (ODF)
- 特定のタイプのメタデータを発見ようにするコンポーネントのためのオープン・インターフェース
- ツールや他のベンダーからオープンAPI経由で起動することができる
- Governance Serviceの一部として、メタデータサーバーに接続し、メタデータの抽出や保存を行う
- 情報アナリストのPeterは、新しいデータがデータレイクに転送された時のために、メタデータ・ディスカバリーをセットアップしている
governDL01
はAsset Analysis Open Metadata Engine Service (OMES)
を実行できるように設定済みAsset Analysis OMES
は、Open Discovery Framework (ODF)
のディスカバリー・エンジンをホストできるASSIGNED
: そのGovernance EngineはEngine Hostの設定ドキュメントにリストアップされているが、メタデータサーバーから情報を取得できないステータスCONFIGURING
: メタデータサーバーからGovernance Engineの基本的な設定情報を取得できた後のステータスRUNNING
: Governance Serviceが登録された後
3 governance engines defined for engine host server governDL01 Governance Engine: AssetQuality supporting service: Asset Analysis OMES status: ASSIGNED Governance Engine: AssetDiscovery supporting service: Asset Analysis OMES status: ASSIGNED Governance Engine: AssetGovernance supporting service: Governance Action OMES status: ASSIGNED
- Discovery Request Type
- Discovery Engineに実行してほしい分析タイプの名前
- 実行時のデフォルトパラメータも設定できる
- Discovery Service、またはDiscovery Pipelineに紐づき、リクエストに応じて処理を実行する
- Discovery Engineを設定した後、ステータスは以下のように変わる
CONFIGURING
では、Discovery Engineは定義されているが、Discovery Request Typeを一つも持っていない状態を表す(Empty)
3 governance engines defined for engine host server governDL01 Governance Engine: AssetQuality supporting service: Asset Analysis OMES status: ASSIGNED Governance Engine: AssetDiscovery type: OpenDiscoveryEngine supporting service: Asset Analysis OMES status: CONFIGURING guid: daf96ce5-2423-448c-b98a-158a74779fb2 description: Extracts metadata about an asset on request. Governance Engine: AssetGovernance supporting service: Governance Action OMES status: ASSIGNED
- Discovery Serviceを作成し、Discovery Request Typeを紐づければ、
RUNNING
となる
3 governance engines defined for engine host server governDL01 Governance Engine: AssetQuality supporting service: Asset Analysis OMES status: ASSIGNED Governance Engine: AssetDiscovery type: OpenDiscoveryEngine supporting service: Asset Analysis OMES status: RUNNING guid: daf96ce5-2423-448c-b98a-158a74779fb2 description: Extracts metadata about an asset on request. requestTypes: - small-csv Governance Engine: AssetGovernance supporting service: Governance Action OMES status: ASSIGNED
Understanding an Asset Lab
このハンズオンでは、データサイエンティストのCallieが、データカタログからどのようにメタデータ参照し分析に活用するのかを見ていきます。
- Coco PharmaceuticalsのデータサイエンティストのCallieは、臨床試験の期間で生成されたデータの分析を担当している
- 臨床試験データはCoco Pharmaceuticalsのデータレイクにデータセットとして保存されている
- Callieのチームは
cocoMDS3
を使用しており、Core OMAG Server Platformにホストされている cocoMDS1
で作成したカタログに対して、アセットに関するコア情報を取得できる
GET https://core:9443/servers/cocoMDS3/open-metadata/common-services/asset-consumer/connected-asset/users/calliequartile/assets/a356d389-abd4-4846-9f9c-8f59ee94004d Returns: { "class": "AssetResponse", "relatedHTTPCode": 200, "asset": { "class": "Asset", "headerVersion": 0, "type": { "class": "ElementType", "headerVersion": 0, "elementSourceServer": "cocoMDS3", "elementOrigin": "LOCAL_COHORT", "elementMetadataCollectionId": "70279005-1910-4e15-82a6-3bb0b38fa9b5", "elementMetadataCollectionName": "Data Lake Catalog", "elementCreatedBy": "peterprofile", "elementCreateTime": "2021-07-17T09:30:18.347+00:00", "elementVersion": 1, "elementTypeId": "2ccb2117-9cee-47ca-8150-9b3a543adcec", "elementTypeName": "CSVFile", "elementSuperTypeNames": [ "DataFile", "DataStore", "Asset", "Referenceable", "OpenMetadataRoot" ], "elementTypeVersion": 1, "elementTypeDescription": "A description of a comma separated value (CSV) file", "status": "ACTIVE" }, "guid": "a356d389-abd4-4846-9f9c-8f59ee94004d", "classifications": [ { "class": "ElementClassification", "headerVersion": 0, "elementSourceServer": "cocoMDS3", "elementOrigin": "LOCAL_COHORT", "elementMetadataCollectionId": "70279005-1910-4e15-82a6-3bb0b38fa9b5", "elementMetadataCollectionName": "Data Lake Catalog", "elementCreatedBy": "cocoMDS1npa", "elementUpdatedBy": "cocoMDS1npa", "elementMaintainedBy": [ "cocoMDS1npa" ], ...
最後に
Information Architecture Labs、Conformance Testing Labs、Asset UI Labsもやろうと思ったのですが、Egeria関連の記事書くのに既に3ヶ月はかかっており、さすがに疲れたのでやめます。
ポチポチクリックしてればセットアップが完了する今時のSaaSとは異なり、かなりインテグレーションやコーディングの労力が要求されるサービスでした。果たして流行るのかどうか…?