OCI 에 무료 기능은 Data Catalog 에 대해서, Oracle Live Labs 로 수행하는 방법을 알아보자.
오라클 LiveLabs 는 누구나 무료로, 본인의 환경(Run on Your Tenancy) 혹은 실습환경 (Run On LiveLabs Sandbox) 로 사용할 수 있다.
실습의 주제는 " Access the Data Lake using Autonomous Database and Data Catalog " 이다.
(라이브 랩스 선택 링크)
Access the Data Lake using Autonomous Database and Data Catalog (oracle.com)
(한글번역 링크)
\해당 화면에서 Start 버튼을 클릭하고, Run On LiveLabs Sandbox 를 클릭하자. (로그인 필요)
이후 샌드박스 환경을 예약 한다. Submit Reservation 클릭
본인 메일로 샌드박스 안내 메일이 전송되며, 해당 내역은 My Reservation Menu 애서 확인할 수 있다.
아래와 같이 해당 환경이 준비 되었으며 4시간 54분 사용 가능하다는 안내 문구를 받을 수 있다.
My Reservation Menu 에서 Launch Workshop버튼을 누른다.
화면이 전화되며, 좌측에 목차가 메인에 내용이 표기된다. 여기에서 좌상단에 View Login Info 를 클릭한다.
나의 Sandbox 정보가 표기되며, 리전, 데넌시, 유져, 암호 등이 나온다.
우상단 검은색의 Launch OCI 버튼을 클릭한다. (신규 탭으로 OCI Console 접속 로그인 화면이로 이동한다. )
테넌시를 확인하고 다음을 클릭한다. 이후 쿠키를 모두 승인하고, 해당 User/pass 로 접속한다.
비밀번호 재설정 안내가 나오면 신규 비밀번호로 재 설정한다.
자 이제 해당 테넌시의 OCI Console 에 접속이 완료되었다.
해당 테넌시에러 LiveLabs 가이드에 따라 하나하나 따라해 볼 수 있다.
Introduction
About this Workshop
이 워크숍에서는 Autonomouse Database(ADB) 와 OCI Data Catalog서비스를 활용하여 ADB 와 Data Catalog 의 싱크를 맞추고 Object Storage 를 연동하여, ADB 에서 쿼리를 해보는 실습을 진행 할 예정이다
OCI Data Catalog 는 기업 데이터를 위한 완전 관리형 셀프 서비스 데이터 검색 및 거버넌스 솔루션임. Data Catalog를 사용하면 기술, 비즈니스 및 운영 메타데이터를 관리할 수 있는 단일 협업 환경을 제공받게 됩니다. 이 메타데이터를 수집, 조직, 검색, 액세스, 이해, 강화 및 활성화할 수 있다
Lab 1: Review the Workshop Environment Setup (Optional)
이번 워크숍은 이미 만들어진 환경에서 진행하기 때문에 모든 환경이 미리 셋팅되어 있다. (데이터 및 권한)
나에게 할당된 Compartment 로 들어가면 이미 DB 하나가 아래와 같이 띄어 져 있는 것을 확인 할 수 있다.
* 위 셋팅는 이미 필요 환경이 구성완료된 셋팅이며, 하나하나 환경 설정을 만드는 셋팅은 Run on your Tenency 로 선택하면 해당 부분을 확인 가능하다. 대략적인 내용은 아래와 같다.
- (Optional) Create a compartment for your Data Catalog resources.
allow group catalog-admins to manage data-catalog-family in compartment x
= 위 명령은 아래의 명령을 각각 준 것과 동일 합니다.
allow group catalog-admins to manage data-catalogs in compartment x
allow group catalog-admins to manage data-catalog-private-endpoints in compartment x
allow group catalog-admins to manage data-catalog-metastores in compartment x
allow group catalog-admins to manage data-catalog-data-assets in compartment x
allow group catalog-admins to manage data-catalog-glossaries in compartment x
allow group catalog-admins to manage data-catalog-namespaces in compartment x
- Create a dynamic group policy to allow Data Catalog to manage the Data Catalog resources
Any {resource.id = 'ocid.datacatalog.oc1..<unique_ID>'}
- Create the access policy to allow the dynamic group to access Oracle Cloud Infrastructure services such as Data Catalog, ADB, and optionally Oracle Object Storage buckets. (*Dynamic Group 에 Data Catalog 을 넣고 해당 DG 가 다른리소스에 접근할 수있는 권한을 부여합니다. )
allow dynamic group <dynamic-group-name> to read object-family in compartment id <compartment_ocid>
where any {target.bucket.name='bucketA', target.bucket.name='bucketB'}
- Create a Data Catalog instance.
- Import a Glossary into your Data Catalog instance.
- Create an Autonomous Database instance.
Any {resource.id = 'ocid.datacatalog.oc1..<unique_ID>'}
* 참조 Policy Link(https://docs.oracle.com/en-us/iaas/data-catalog/using/policies.htm, https://docs.oracle.com/en-us/iaas/data-catalog/using/policy-examples.htm).
(특정 그룹은 특정 에셋만 접근하게 하는 권한등의 상세 설정 참조)
Lab 2: Harvest Technical Metadata from Oracle Object Storage
하베스팅은 데이터 자산에서 기술 메타데이터를 추출하여 Data Catalog 저장소에 넣는 과정입니다. 데이터 자산(Asset) 은 데이터베이스, 객체 저장소, 파일 또는 문서 저장소, 메시지 큐, 애플리케이션 같은 데이터 소스를 의미합니다. 이 실습에서는 Oracle Object Storage 데이터 자산(Asset) 을 만들고, 새로운 데이터 자산에 기본 연결을 추가하며, 파일 이름 패턴을 만들어 데이터 자산에 할당한 다음, 데이터 자산을 하베스팅하고 하베스팅된 데이터 엔티티를 보는 단계를 안내합니다.
위와 같이 미리 만들어진 Data Catalog Service 를 통해 워크숍을 각자 수행합니다.
Lab 2 : Task 2: 비즈니스 글로서리를 만듭니다.
Lab 2 : Task 3: 데이터 에셋을 만듭니다. Object Storage Bucket 으로 만듭니다. .
Lab 2 : Task 4: 3개의 커넥션을 등록합니다.
Lab 2 : Task 5: 파일네임 패턴을 등록하고 이를 자산(Asset) 과 연동합니다.
아래와 같이 여러개의 파일이 규칙에 따라 동일 로직컬 엔티티로 등록이 됩니다.
Lab 2 : Task 8: 각각 Harvest 이후 이렇게 로지컬 엔티티로 여러개 파일이 등록되어 있는 것을 확인 합니다
Lab 3 : Task 5: ADB 에서 Data Catalogy metadata 를 통해 External Table을 만들고 이를 조회합니다.
ADB Admin 접속
참조 SQL
-- Resource Principal 활성화
EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL();
-- Resource Principal 확인
SELECT * FROM all_credentials
-- Data Catalog Credential 생성
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => 'OCI_KEY_CRED_DC_ADM',
user_ocid => 'ocid1.user.oc***pgfvwvyqouydzsbwqejunxuiuug62qo2qpf2uhlibly56tq',
tenancy_ocid => 'ocid1.tenancy.***aastu36qjyawpq44pvsyf6qqhdmzmnudiyzwyfvudd35tyxrdgcena',
private_key => 'MIIEvQIBADA*MN1NCZ9eoRfwctcHMs
3iZDHJQyk1n4+cicpV8CbYNSsbgNLhf5s4FsxtRsWCILDh0nz26hTxR3cQKBgHcR
0CShRKAGqoPEQW3/EmUQN3wsZ7mHU1N8ammP9zJ+OzPf3j0ekyZx4S7gm+OIQ2TD
KNWJsE1KGTrHrqYByYbwsd8gwvhdqR7fbhQOcsOHofXUOXQ6KJB6Ocjshpg6H4NG
1b31mBliQM+csjjwwGrQTUsgio0NbxsXTx2YxPPZAoGAR28UQddCR0+Oi08xogtf
W+bGq/RXuRi6erSQpM/Y4KcptkyNKfw7Ywkmbq/tGY4pPQeQHVDSln9Qu3Dtz5aq
+cD/kc4GicxwASeT5EOL+gcIJs1m9VEpnm6Ocx/Z25gVS/f0UjAyPJan8eIs75CG
pimZuHOZnthFdiCOE4Zdwck=',
fingerprint => 'b2:e9:d0:ed:c***1:94:0a:2a:55:ae');
END;
/
-- 변수 선언 (크레덴셜 할당용)
define dcat_credential ='OCI_KEY_CRED_DC_ADM'
-- 크레덴셀 할당
exec dbms_dcat.set_data_catalog_credential(credential_name => '&dcat_credential');
exec dbms_dcat.set_object_store_credential(credential_name => 'OCI$RESOURCE_PRINCIPAL');
-- 크레덴셜을 사용하여 조회 가능 Data Catalog 조회
select *
from all_dcat_global_accessible_catalogs;
-- 변수 선언
define dcat_region='ap-seoul-1'
define dcat_ocid = 'ocid1.datacatalog.oc
888-1.amaaaaaa7ratczia3jpmbk23n6rvki7hj2kb4wbpoycs7veage7mk42zfpvq'
-- Data Catalog 연결
begin
dbms_dcat.set_data_catalog_conn (
region => '&dcat_region',
catalog_id => '&dcat_ocid');
end;
/
-- 연결 확인
select *
from all_dcat_connections;
describe all_dcat_connections;
select *
from all_dcat_assets;
select *
from all_dcat_folders;
describe all_dcat_folders;
select *
from all_dcat_entities;
-- 데이터 에셋 조회
select path, display_name, key as folder_key, data_asset_key
from all_dcat_folders
-- where display_name='BY_DS_MOUNT_BUCKETS';
-- 해당 특정 에셋과 Sync (he synchronization process creates schemas and external tables based on the Data Catalog data assets and logical entities)
begin
dbms_dcat.run_sync(synced_objects =>
'{"asset_list": [
{
"asset_id":"ff6c7084-8c38-4807-93e2-885cb043cd13",
"folder_list":["a033f20b-d527-4cf5-af23-e2fbffbf2548"]
}
]}', grant_read => 'dwrole');
end;
/
-- Sync table 확인
select oracle_schema_name, oracle_table_name
from dcat_entities;
-- Table Data 확인
select *
from DCAT$DATA_LAKE_ASHBUN_GOLD.GENRE
where rownum < 10;
DW role 이 있는 타 유저도 조회가능
아래와 같이 특정 스키마 및 테이블로 조회 가능
시각화 예시
작성자: 장재석 (coolguy81@gmail.com) / Cloud Engineer
개인의 시간을 할애하여 작성된 글로서 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.
'4. 데이터분석' 카테고리의 다른 글
OAC:Advanced Configuration - Start/Stop using OCI CLI (0) | 2024.05.28 |
---|---|
Oracle Analytics Cloud (OAC) :사용자 및 관리자 계정 생성 및 권한 관리 - Advanced (0) | 2024.05.20 |
Oracle Analytics Cloud (OAC) : Role Based Filter 적용하기 (0) | 2024.05.20 |
Oracle Analytics Cloud(OAC) :Advanced Configuration - Mail Settings (0) | 2024.04.15 |
Oracle Analytics Cloud(OAC) :Advanced Configuration - Track Usage (0) | 2024.04.12 |
댓글