DBMS_DCATを使用したData Catalogデータの取得 (2023/05/31)

DBMS_DCATを使用したData Catalogデータの取得 (2023/05/31)

https://medium.com/@aporcescu/get-data-catalog-data-using-dbms-dcat-5a16d637aea0

投稿者:Alexandru Porcescu


DBMS_DCATパッケージは、Autonomous DatabaseのユーザーがOCI Data Catalogの機能(データ検出および集中管理のための包括的なシステム)を利用できるように設計された様々な機能と手順を提供します。簡単に言うと、このパッケージにより、ユーザーはOCI Data Catalogで提供されるデータ探索およびメタデータ管理機能を最大限に活用できます。


現時点では、Data CatalogにはOracle Analytics Cloudのコネクタがないため、収集されたものを実際にビジュアル化することはできません。しかし、それは不可能であることを意味するものではありません。回避方法がいくつかあります。


1) DBMS_DCATの使用


2) APIの使用


この記事では、DBMS_DCATを使用してADWにデータを取得する方法を示しています。その後、OACをADWに接続し、Data Catalogデータ上にダッシュボードを作成できます。


DBMS_DCATを使用するには、いくつかの前提条件を完了する必要があります。DBMS_DCATの使用を開始するために必要な動的グループ、IAMポリシーを作成するには、このドキュメントを確認してください。Data Catalog接続の管理(oracle.com)


次の情報をメモ帳で事前に準備して、作業を容易にし、必要なときに毎回気を取らないようにしてください。次のものが必要になります。


- User_OCID

- Tenancy_OCID

- Private key (Private key that was used in User API authentication)

- Fingerprint (Fingerprint that was generated in User API Authentication)

- Dcat_region (Data Catalog Region)

- Dcat_OCID (Data Catalog OCID)

- Object storage URI


Dynamic Group Rules
resource.id = 'ocid1.autonomousdatabase.oc1....'
ALL {resource.type = 'autonomousdatabase', resource.compartment.id = 'ocid1.compartment....'}
ALL {resource.compartment.id='ocid1.compartment....'}


Polcies
allow group <group> to manage data-catalog-family in compartment <compartment>
allow group <group> to read objects in compartment <compartment>
allow dynamic-group <dynamic-group-name> to manage data-catalog-family in compartment <compartment>
allow dynamic-group <dynamic-group-name> to read objects in compartment <compartment>
Allow dynamic-group <dynamic-group-name> to manage autonomous-databases in compartment <compartment>

---Step 1 grant access to the resource principal credential to a database user
EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL();
--- Step 2 -- Use this step only if the sync will be done by another user.
grant dcat_sync to admin;
--- Step 3
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => 'OCI_NATIVE_CRED',
user_ocid => 'ocid1....',
tenancy_ocid => 'ocid1.tenancy.....',
private_key => 'Copy-paste the private key',
fingerprint => '...-...-...-...');
END;

---Step 4 Check if credential was created

SELECT owner, credential_name
FROM dba_credentials
WHERE credential_name LIKE '%NATIVE%';

---Step 5 Checking in case Step 4 gave nothing
select * from dba_credentials;

--- Step 6
select * from all_dcat_connections;
define dcat_region='us-phoenix-1'
define dcat_ocid = 'ocid1.datac'
define dcat_credential ='OCI_NATIVE_CRED'
define obj_credential = 'OCI_NATIVE_CRED'
define uri_root = 'https://objectstoragn/namespace/b/bucket-name/o'

--- Step7 Checking if object storage is accessible using credentials

select * from dbms_cloud.list_objects('&dcat_credential', '&uri_root/');

--- Step 8 Setting connection
exec dbms_dcat.set_data_catalog_credential(credential_name => '&dcat_credential');

begin
dbms_dcat.set_data_catalog_conn (
region => '&dcat_region',
catalog_id => '&dcat_ocid');
end;

select * from all_dcat_assets;
select * from ALL_DCAT_ENTITIES;

--- Step 9 Sync
EXEC DBMS_DCAT.RUN_SYNC(synced_objects=>'{"asset_list":["*"]}'


--- Example of targeted sync
/* begin
dbms_dcat.run_sync(synced_objects =>
'{"asset_list": [
{
"asset_id":"9b12eb45-320d-4c5a-af17-2a50f7f73feb",
"folder_list":[
"fde6a2b9-eb35-473b-bf10-3a44aec19392"
]
}
]}');
end; */


--- Checking ALL_DCAT_GLOBAL_ACCESSIBLE_CATALOGS view

select * from ALL_DCAT_GLOBAL_ACCESSIBLE_CATALOGS;

--- Step 10. Let us create a table with Dcat data from ALL_DCAT_FOLDERS view.

CREATE TABLE ALL_DCAT_FOLDERS as (select * from ALL_DCAT_FOLDERS);The list of views that are accessible through DBMS_DCAT (Data Catalog Views (oracle.com))


1) ALL_DCAT_GLOBAL_ACCESSIBLE_CATALOGS View

2) ALL_DCAT_LOCAL_ACCESSIBLE_CATALOGS View

3) ALL_DCAT_GLOBAL_ACCESSIBLE_CATALOGS View

4) ALL_DCAT_LOCAL_ACCESSIBLE_CATALOGS View

5) ALL_DCAT_ASSETS View

6) ALL_DCAT_FOLDERS View

7) ALL_DCAT_ENTITIES View

8) ALL_DCAT_ATTRIBUTES View

9) ALL_DCAT_CONNECTIONS View

10) DCAT_ENTITIES View

11) DCAT_ATTRIBUTES View

12) DBMS_DCAT$SYNC_LOG View


Autonomous Databaseと統合されている場合、Data Catalogにはいくつかの表とビューがあります。これらのビューにアクセスします。ビューの完全なリストは、「Data Catalogビュー(oracle.com)」リンクから参照できます。


結論として、Data Catalogにはレポート・ツールへのコネクタはまだありませんが、回避策があります。この方法を使用すると、すべてのレポート・ツールをADWに接続し、同じデータをビジュアル化できます。


コメント

このブログの人気の投稿

Oracle APEXのInteractive Gridで、Oracle Formsと比較して、重複行の検証を制御/通過させる方法 (2022/07/21)

Oracle APEX 24.1の一般提供の発表 (2024/06/17)

Oracle Cloudのデータベースをオブジェクト・ストレージにバックアップする3つの方法 (2021/12/13)