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を利用して調査を実施す
今回はAdministration 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.
Administration Labs
Administration Labsでは、以下の4つを実施していきます。
- Managing Servers
- Understanding Server Configuration
- Understanding Platform Services
- Understanding Cohorts
Managing Servers
ITインフラのGaryは、OMAGサーバーをセットアップし、正常に稼働しているか監査ログを確認していきます。
- 初期セットアップで上記のようにセットアップしたサーバー・プラットフォームに対して、ホスト名とポート番号を定義
Data Lake OMAG Server Platform
上で、cocoMDS1
を起動させる
Starting server cocoMDS1 ... POST https://datalake:9443/open-metadata/admin-services/users/garygeeke/servers/cocoMDS1/instance Response: { "class": "SuccessMessageResponse", "relatedHTTPCode": 200, "successMessage": "Sun Jun 20 23:29:35 GMT 2021 cocoMDS1 is running the following services: [Open Metadata Repository Services (OMRS), Connected Asset Services, Asset Catalog OMAS, Asset Consumer OMAS, Asset Manager OMAS, Asset Owner OMAS, Community Profile OMAS, Glossary View OMAS, Discovery Engine OMAS, Data Engine OMAS, Data Manager OMAS, Governance Engine OMAS]" }
cocoMDS1
の保存されている設定ドキュメントをAPIから取得し、監査ログ情報auditTrail
を出力してみる
Retrieving stored configuration document for cocoMDS1 ... GET https://datalake:9443/open-metadata/admin-services/users/garygeeke/servers/cocoMDS1/configuration Server configuration for cocoMDS1 has been retrieved Audit Trail: Sun Jun 20 23:20:29 GMT 2021 garygeeke updated configuration for local server's URL root to https://datalake:9443. Sun Jun 20 23:20:30 GMT 2021 garygeeke updated configuration for maximum page size to 100. Sun Jun 20 23:20:30 GMT 2021 garygeeke removed configuration for local server type name. ...
- 設定ドキュメントはサーバーを起動した後で変更される可能性があるが、保存されている設定ドキュメントへの反映には再起動が必要
- APIのエンドポイントに
/instance/
を加えることで、保存されている設定ドキュメントではなく、起動中サーバーの最新の設定ドキュメントを取得できる
Retrieving running configuration document for cocoMDS1 ... GET https://datalake:9443/open-metadata/admin-services/users/garygeeke/servers/cocoMDS1/instance/configuration Server configuration for cocoMDS1 has been retrieved Audit Trail: Sun Jun 20 23:20:29 GMT 2021 garygeeke updated configuration for local server's URL root to https://datalake:9443. Sun Jun 20 23:20:30 GMT 2021 garygeeke updated configuration for maximum page size to 100. Sun Jun 20 23:20:30 GMT 2021 garygeeke removed configuration for local server type name. ...
- DELETEリクエストで、
cocoMDS1
を停止する - DELETEリクエストの際、
/instance
を外すことでサーバーを消去できる
Understanding Server Configuration
このチュートリアルでGaryは、cocoMDS1
サーバーの設定ドキュメントを参照し、それによってサービスがどう稼働されているのかを把握していきます。
- 先ほどと同様に、APIから設定ドキュメントを取得する
auditTrail
を参照すれば、設定項目を概観できる
Retrieving stored configuration document for cocoMDS1 ... GET https://datalake:9443/open-metadata/admin-services/users/garygeeke/servers/cocoMDS1/configuration Server configuration for cocoMDS1 has been retrieved Audit Trail: Sun Jun 20 23:20:29 GMT 2021 garygeeke updated configuration for local server's URL root to https://datalake:9443. Sun Jun 20 23:20:30 GMT 2021 garygeeke updated configuration for maximum page size to 100. Sun Jun 20 23:20:30 GMT 2021 garygeeke removed configuration for local server type name. ...
- 設定ドキュメントからは、サーバー名・ID・種類・組織名が取得可能
metadataCollectionId
とmetadataCollectionName
は、ローカルリポジトリ内のメタデータの起源となるIDlocalRepositoryRemoteConnection
で、外部のサーバーからアクセスするためのエンドポイントを取得できる- エンドポイントのアドレスには、DNSを指定することも可能
Server name: cocoMDS1 Server GUID: b001bced-df50-403b-812c-42f2dc9099fa Server Type: Metadata Server Organization: Coco Pharmaceuticals Local metadata collection id: 24f7d3c9-d2bb-40ac-b0a3-4ed8b92052ae Local metadata collection name: Data Lake Catalog Server URL root: https://datalake:9443 Full URL endpoint: https://datalake:9443/servers/cocoMDS1
- メタデータ・サーバーは、データレイク上のデータやプロセスについてのメタデータを保管するローカルリポジトリが必要
in-memory repository
とgraph repository
の2種類のリポジトリがあるauditLogConnections
やlocalRepositoryLocalConnection
内で、コネクターの概要やクラス名が確認できる
Audit Log Destinations: 1. description: Connector supports logging of audit log messages to stdout. className: org.odpi.openmetadata.adapters.repositoryservices.auditlogstore.console.ConsoleAuditLogStoreProvider Local Repository's Local Connection: description: OMRS Repository Connector that uses an in-memory store. className: org.odpi.openmetadata.adapters.repositoryservices.inmemory.repositoryconnector.InMemoryOMRSRepositoryConnectorProvider
- リクエストの認証に使用する
userId
とpassword
も、設定ドキュメントから取得可能 - 認可はリクエストごとに付与する。
serverSecurityConnection
で参照可能
local Server UserId: cocoMDS1npa local Server Password: cocoMDS1passw0rd Server's Security Connection: { "class": "Connection", "headerVersion": 0, "connectorType": { "class": "ConnectorType", "headerVersion": 0, "connectorProviderClassName": "org.odpi.openmetadata.metadatasecurity.samples.CocoPharmaServerSecurityProvider" } }
- event bus: メタデータに関するイベントの交換を担う機能(Apache Kafka)
- cohortsに接続し、topicsを提供する
eventBusConfig
に設定情報が載る
Event Bus Configuration: { "class": "EventBusConfig", "topicURLRoot": "egeria.omag", "configurationProperties": { "producer": { "bootstrap.servers": "kafka:9092" }, "consumer": { "bootstrap.servers": "kafka:9092" } }, "additionalProperties": { "producer": { "bootstrap.servers": "kafka:9092" }, "consumer": { "bootstrap.servers": "kafka:9092" } } }
- サーバーは複数のcohortsに属することが可能
cocoMDS1
はcocoCohort
のメンバー- cohortの情報は
cohortConfigList
で取得できる
Cohort(s) that this server is a member of: 1. name: cocoCohort Cohort Registry Connection: description: Connector supports storing of the open metadata cohort registry in a file. className: org.odpi.openmetadata.adapters.repositoryservices.cohortregistrystore.file.FileBasedRegistryStoreProvider Cohort Topic Connection: className: org.odpi.openmetadata.repositoryservices.connectors.omrstopic.OMRSTopicProvider
- Open Metadata Access Services (OMASs)で利用可能な選択肢は、専用のエンドポイントを叩けば取得できる
- 各OMASがサポートしているサービスは
accessServicesConfig
から参照可能
Retrieving the registered access services ... GET https://datalake:9443/open-metadata/platform-services/users/garygeeke/server-platform/registered-services/access-services Response: { "class": "RegisteredOMAGServicesResponse", "relatedHTTPCode": 200, "services": [ { "serviceName": "DigitalService", "serviceURLMarker": "digital-service", "serviceDescription": "Manage a Digital Service Lifecycle", "serviceWiki": "https://egeria.odpi.org/open-metadata-implementation/access-services/digital-service/" }, { "serviceName": "Data Manager", "serviceURLMarker": "data-manager", "serviceDescription": "Capture changes to the data stores and data set managed by a data manager such as a database server, content manager or file system.", "serviceWiki": "https://egeria.odpi.org/open-metadata-implementation/access-services/data-manager/" }, ... Configured Access Services: Asset Catalog options: { "SupportedZones": [ "quarantine", "clinical-trials", "research", "data-lake", "trash-can" ] } Asset Consumer options: { "SupportedZones": [ "quarantine", "clinical-trials", "research", "data-lake", "trash-can" ] } ...
- サーバーで使用されているTopicsのリスト化も可能
List of Topics used by cocoMDS1 egeria.omag.openmetadata.repositoryservices.cohort.cocoCohort.OMRSTopic egeria.omag.server.cocoMDS1.omas.assetcatalog.inTopic egeria.omag.server.cocoMDS1.omas.assetcatalog.outTopic egeria.omag.server.cocoMDS1.omas.assetconsumer.inTopic egeria.omag.server.cocoMDS1.omas.assetconsumer.outTopic egeria.omag.server.cocoMDS1.omas.assetmanager.inTopic egeria.omag.server.cocoMDS1.omas.assetmanager.outTopic egeria.omag.server.cocoMDS1.omas.assetowner.inTopic egeria.omag.server.cocoMDS1.omas.assetowner.outTopic egeria.omag.server.cocoMDS1.omas.communityprofile.inTopic egeria.omag.server.cocoMDS1.omas.communityprofile.outTopic egeria.omag.server.cocoMDS1.omas.glossaryview.inTopic egeria.omag.server.cocoMDS1.omas.glossaryview.outTopic egeria.omag.server.cocoMDS1.omas.discoveryengine.inTopic egeria.omag.server.cocoMDS1.omas.discoveryengine.outTopic egeria.omag.server.cocoMDS1.omas.dataengine.inTopic egeria.omag.server.cocoMDS1.omas.dataengine.outTopic egeria.omag.server.cocoMDS1.omas.datamanager.inTopic egeria.omag.server.cocoMDS1.omas.datamanager.outTopic egeria.omag.server.cocoMDS1.omas.governanceengine.inTopic egeria.omag.server.cocoMDS1.omas.governanceengine.outTopic
maxPageSize
: リクエストに対する最大ページサイズ
Maximum records return on a REST call: 100
Understanding Platform Services
このチュートリアルでは、プラットフィーム上の稼働中のサーバーにクエリするためのコマンドについて見ていきます。
- Originとバージョンの取得
Retrieving the OMAG Server Platform origin ... GET https://datalake:9443/open-metadata/platform-services/users/garygeeke/server-platform/origin Response: Egeria OMAG Server Platform (version 2.10)
- Registered Services一覧は、それぞれ以下のエンドポイントからGETで取得できる
https://datalake:9443/open-metadata/platform-services/users/garygeeke/server-platform/registered-services/
- Common Services:
./common-services
- Access Services:
./access-services
- Engine Services:
./engine-services
- Integration Services:
./integration-services
- View Services:
./view-services
- Governance services:
./governance-services
./registered-services
自体にへリクエストを飛ばせば、全サービス一覧が帰ってくる
Retrieving all of the registered services ... GET https://datalake:9443/open-metadata/platform-services/users/garygeeke/server-platform/registered-services Response: { "class": "RegisteredOMAGServicesResponse", "relatedHTTPCode": 200, "services": [ { "serviceName": "Open Metadata Repository Services (OMRS)", "serviceURLMarker": "repository-services", "serviceDescription": "Manages the synchronization, retrieval and maintenance of metadata stored in open metadata repositories", "serviceWiki": "https://egeria.odpi.org/open-metadata-implementation/repository-services/" }, { "serviceName": "OMAG Server Operational Services", "serviceURLMarker": "admin-services", "serviceDescription": "Management of services active in an Open Metadata and governance server (OMAG Server)", "serviceWiki": "https://egeria.odpi.org/open-metadata-implementation/admin-services" }, ...
- ホストしているサーバー情報の取得
- known server: プラットフォームが立ち上がってから起動されたサーバー
- active server: 現在起動中のサーバー
Querying the known servers on platform: Data Lake Platform ... GET https://datalake:9443/open-metadata/platform-services/users/garygeeke/server-platform/servers Response: { "class": "ServerListResponse", "relatedHTTPCode": 200, "serverList": [ "cocoMDS1", "cocoMDS4", "cocoView1" ] } Querying the active servers on platform: Data Lake Platform ... GET https://datalake:9443/open-metadata/platform-services/users/garygeeke/server-platform/servers/active Response: { "class": "ServerListResponse", "relatedHTTPCode": 200, "serverList": [ "cocoMDS1", "cocoMDS4", "cocoView1" ] }
- 個々のサーバーに対して、
./is-known
、./status
、./services
などで細かな情報を取得できる
Querying if a server is known ... GET https://datalake:9443/open-metadata/platform-services/users/garygeeke/server-platform/servers/cocoMDS1/is-known Response: { "class": "BooleanResponse", "relatedHTTPCode": 200, "flag": true } Querying the status of a server ... GET https://datalake:9443/open-metadata/platform-services/users/garygeeke/server-platform/servers/cocoMDS1/status Response: { "class": "ServerStatusResponse", "relatedHTTPCode": 200, "serverName": "cocoMDS1", "serverType": "Metadata Server", "serverStartTime": "2021-06-20T23:54:16.283+00:00", "serverHistory": [ { "startTime": "2021-06-20T23:23:09.301+00:00", "endTime": "2021-06-20T23:29:34.642+00:00" }, { "startTime": "2021-06-20T23:29:34.715+00:00", "endTime": "2021-06-20T23:43:56.479+00:00" } ], "active": true } Querying the services that are active a server ... GET https://datalake:9443/open-metadata/platform-services/users/garygeeke/server-platform/servers/cocoMDS1/services Response: { "class": "ServerServicesListResponse", "relatedHTTPCode": 200, "serverName": "cocoMDS1", "serverServicesList": [ "Open Metadata Repository Services (OMRS)", "Community Profile OMAS", "Asset Consumer OMAS", "OMAG Server Operational Services", "Discovery Engine OMAS", "Asset Catalog OMAS", "Asset Owner OMAS", "Asset Manager OMAS", "Connected Asset Services", "Data Manager OMAS", "Glossary View OMAS", "Data Engine OMAS", "Governance Engine OMAS" ] }
Understanding Cohorts
このハンズオンでは、OMAGサーバーと接続されているCohortsの構成について理解していきます。
- CohortはPeer-to-peerで繋がっており、それぞれのCohortメンバーが、他のメンバーのについての情報を保有している
- これらの情報は、Cohort registry storeに保管されている
queryServerCohorts()
で、接続されているCohortの情報を取得できる
Cohort(s) for cocoMDS1 are [cocoCohort] Cohort(s) for cocoMDS2 are [cocoCohort, devCohort, iotCohort] Cohort(s) for cocoMDS3 are [cocoCohort] Cohort(s) for cocoMDS4 are [cocoCohort] Cohort(s) for cocoMDS5 are [cocoCohort] Cohort(s) for cocoMDS6 are [cocoCohort, iotCohort] Cohort(s) for cocoMDSx are [devCohort]
- Local registration: メタデータサーバーが接続済みのCohortsとシェアしたRegistrationの情報
printRemoteRegistrations()
で出力
Registration details for local Metadata Server cocoMDS2 * Metadata collection id: 0d255ab2-8b50-4a9b-9902-7a71e0adf9ed * Metadata collection name: Governance Catalog * URL for metadata queries: https://core:9443/servers/cocoMDS2
次のステップ
次回は、実際にデータカタログを作成・管理・活用していくペルソナに向けた Asset Management Labsをやっていきます。