Oracle Autonomous Database Cloud 2021 Specialist (1Z0-931-21) 学習メモ

# はじめに
[Oracle Autonomous Database Cloud 2021 Specialist](https://education.oracle.com/ja/x/pexam_1Z0-931-21)の取得を目指して勉強したメモです。

# ADB概要
## ラインナップ
- Autonomous Data Warehouse(ADW)
    - 分析ワークロードまたはデータレイクの一部として最適化
- Autonomous Transaction Processing（ATP）
    - トランザクション処理、混合ワークロード環境に最適化
- Autonomous JSON Database（AJD）
    - JSONドキュメントを使用するNoSQLデータベース
    - AJDをATPにプロモートできる。ATPから派生したサービス

||ADW|ATP
|:--|:--|:--
|用途|複雑な分析に最適化|トランザクション処理に最適化
|データフォーマット|Columnar（列）|Row（行）
|データアクセス|ストレージインデックスなどのデータサマリを使用し、必要なデータのみにアクセス|インデックスを作成し、トランザクションに必要な行またはレコードにのみアクセス
|メモリ使用|メモリ上で結合、集約|I/O削減のためにデータキャッシュ
|プラットフォーム|Exadata（共有/専有）|←

## ライセンス
- OCPU（物理コア）数、ストレージ容量に対して課金
    - オートスケーリングが有効の場合、1時間あたりのOCPU数の平均値で課金
    - ストレージの課金は終了しないと止まらない。
- BYOL
    - オンプレでOracle DB EE、マルチテナントオプションのライセンスが必要
    - 16 OCPU以上の時は、RACも必要
- Always Free
    - 1 OCPU/20GBストレージのADBを2つまで作れる

# ADB on Shared Infrastructure
## プロビジョニング
### ADBをプロビジョニングしたら、バックグラウンドで作成されるもの
- 19c PDB
- Private SDN
- 暗号化したDB
- RACクラスタ
- バックアップなどの自動化プロセス

### 設定項目
- 「表示名」は他のADBと同じでもよいが、「データベース名」は一意である必要がある
- OCPU数、ストレージサイズを指定する。
    - メモリはOCPU数によって決まる。（指定はできない）
- その他設定項目
    - コンパートメント
    - ワークロードタイプ（ADW/ATP/JSON/APEX）
    - 共有/専有
    - ADMINパスワード
    - ネットワークアクセス
    - ライセンスタイプ

## スケーリング
- 128 OCPUまではOCIコンソールでスケールできる
    - 129 OCPU以上にしたい場合は、Oracleアカウントチームに連絡して、しきい値を変更してもらう必要がある。
- ADB稼働中に手動でスケーリングできる
- OCPUとストレージは独立してスケーリングできる
- Auto Scalingを有効にすると、設定したOCPU数の3倍まで自動でスケールする
    - プロビジョニング時だけでなく、プロビジョニング後にも有効にできる
    - ストレージもAuto Scaleする

## Clone
- クローンのタイプ
    - フルクローン
    - リフレッシュ可能クローン
        - ReadOnly
        - 7日以内にソースDBとリフレッシュ（同期）する必要がある
            - 7日を過ぎてリフレッシュしない場合、スタンドアロンの読み取り専用コピーになる
        - バックアップからは作成できない
        - APEXのURLは機能しない
    - メタデータクローン
        - ソースDBのスキーマ、メタデータをコピー
        - データは空
- ソースDB
    - 稼働中のDBインスタンス
    - バックアップ
        - リフレッシュ可能クローンを除く
        - 2時間以上経過したバックアップからクローンを作成できる
- 別のコンパートメントにもクローンできる
- ソースDBよりも新しいバージョンのクローンを作成できる

## User management
- ADMINユーザはADBをデプロイするときに作成される
- DWROLEという開発者、DWHユーザ向けの事前定義されたデータベースロールがある
    - 以下のコマンドで使える
    - SQL Developer Web Consoleでも設定できる

```
SQL> create user <ユーザ名> identified by <パスワード>;
SQL> Grant dwrole to <ユーザ名>; 
```

## バックアップ
- 自動でバックアップされる
    - 保持期間は60日
- 手動でもバックアップ可能
- オブジェクトストレージに保存される
    - 手動でバックアップする場合は、事前にバケットを作成する
        - バケット名はすべて小文字
        - バケット名は「backup_データベース名」
            - 一意のデータベース名。表示名じゃない。

## Autonomous Data Guard
- Autonomuous Data Guardはプライマリーデータベースを監視している
- 何らかの理由でプライマリーデータベースが停止した場合、スタンバイインスタンスが自動でプライマリになる
    - 新しいウォレットのダウンロードやURLの変更はない
    - 手動での切り替えも可能
- フェイルオーバーしたあと、新しいスタンバイインスタンスがプロビジョニングされる
- 自動フェイルオーバーはデータロストがない場合にできる。
    - データロストがある場合は、手動でフェイルオーバーしないといけない。
- 自動フェイルオーバー
    - RTO：2分
    - RPO：0分
- 手動フェイルオーバー
    - RTO：2分
    - RPO：5分
- プライマリとスタンバイが同一リージョン内（の別AD/別FD）にあるローカル・スタンバイと別リージョンにあるリージョン間スタンバイ
- リージョン間スタンバイの場合、以下の制約がある
    - 自動フェイルオーバーができない
    - スタンバイを読み取り専用で利用できない
    - リモートリージョンからのウォレットのダウンロードが必要
- Autonomous Data Guardを無効にすると、スタンバイデータベースは終了（Terminated）する

# ADB on Dedicated Infrastructure

## Workflow
### Fleet Administrator
- Exadataのプロビジョニング
    - サイズ、AD、リージョンを指定
- クラスタをプロビジョニング
    - クラスタ名、CPU数、ソフトウェアライセンス、VCN、ライセンスモデル
- コンテナ・データベースをプロビジョニング
    - DB名、コア数、バージョン、DataGuard、バックアップ

### Develper, DBA
- コンテナデータベースにデータベースをプロビジョニング
    - Data Pump、GGでADBへの移行が可能

## 課金
- プロビジョニングしたExadataのサイズ（CPU数）に基づく
- BYOL可能
- 最小48時間のExadataサブスクライブが必要

## サポートするExadata
- X7/X8/X8M
    - それぞれフルラック、ハーフラック、クォータラック可能
- 最大12VMクラスタを作成できる
- High Availability SLAを満たす場合は、最大100DBにすることを推奨
    - Extreme Availabilityの場合は、最大25DB

## Getting Start
- サービスリミットの制限引き上げ申請
- Fleet、DBAユーザロールの作成
- ネットワーク、VMクラスタ、コンテナデータベースのプロビジョニング
- データベースの作成、エンドユーザへのアクセス権設定

## DedicatedとSharedの比較
||Dedicated|Shared
|:--|:--|:--
|Autonomous<br>Resources|Autonomous DB<br>Autonomous CDB<br>Autonomous VM Cluster<br>Autonomous Exadata Infrastructure|Autonomous DB
|Private Single Tenant|Yes|No
|ADの選択|Yes|No
|開発、テスト、本番のライフサイクル分離|Yes|No
|メンテナンススケジュールの管理|Yes|No
|更新、パッチ適用のスキップ|Yes|No
|専用インフラでのバックアップ保持|Yes|No
|Customer‐Managed TDE Key|OCI Vault<br>Oracle Key Vault|No
|Data Guard<br>Replication Mode|Sync(max availability)<br>Async(Max performance)|Async
|Data Guard<br>Active Standby|Yes|No
|SQL Create/Drop Tablespace|Yes|No
|Java in Database|Yes|No

## プロビジョニング
- 専用のExadataのプロビジョニング（Network含む）
    - OCIのコンソールから「Autonomous Exadata Infrastructureの作成」をクリック
        - AD、Exadataのシェイプ、VCN、サブネット、ライセンスタイプなどを設定
    - VCNのセキュリティリストは、Exadata用サブネット、アプリケーション用サブネット2つを設定する
        - アプリケーション用サブネットにはIGWへのルートテーブルを設定する（オプション）
- コンテナデータベースのプロビジョニング
    - OCIのコンソールから「Autonomous Container Databaseの作成」をクリック
        - Exadata、Data Guardなどを設定
- ADBのプロビジョニング
    - OCIのコンソールから「Autonomous Databaseの作成をクリック」
        - DB名、ワークロードタイプ、専用インフラなどを設定

## Monitoring
### Tools
- OEM
- Performance Hub
- OCI Console

## Patch
- 四半期ごとにパッチ適用ウィンドウを指定できる
    - FW/OS/Storage/Network/Hypervisor/Clusterware/Database
- 変更もダイナミックに可能
- 四半期ごとに更新がコンソールに表示され、通知される
- 更新のスキップが可能

## 暗号化
- TDE：Transparent Data Encryption によってテーブル、テーブルスペースを暗号化している。
    - 暗号化されたデータは、権限のあるユーザまたはアプリケーションがアクセスすると自動的に複合化される。
- Oracle Key VaultでTDEウォレットを集中管理できる
- Master Encryption Keyを外部のHSMデバイスに保存できる
    - 顧客はキー生成とローテーションをコントロールできる

# Managing and Monitoring
## Metrics
OCIコンソールで確認できる。

- Storage
    - すべての表領域の割り当て済み領域の合計
- CPU
    - すべてのコンシューマーグループの値を集計
    - データベースで使用可能なCPU数（OCPU数の2倍）に対してレポートする
- Session
    - データベース内のセッション数
- Execute Count（実行数）
    - SQLを実行したユーザーコース数および再帰コール数
- Running Statement（実行中のステートメント）
    - すべてのコンシューマーグループで実行したSQLの数
- Queued Statement（キュー済みのステートメント）
    - すべてのコンシューマーグループのキュー済みのSQLの数

- Alarmのベストプラクティス
    - 各メトリックに対して一つのアラームを設定する
    - 適切なインターバルを設定する
    - 調査中のアラームを抑制する

## サービスコンソール
OCIコンソールの追加情報を確認できる

- コンシューマーグループごとのCPU使用率、実行中、キュー済みのステートメント
- 実行したSQLが時系列で表示
    - 実行中のSQLをキャンセルすることも可能
    - レポートのダウンロード

## ACL(Access Control List)
- デフォルト無効
    - 任意のIPアドレスからアクセス
- ACLを設定したら、設定したアドレスからのみアクセスできる
    - ACLに登録されていないとSQL Developer Webなどのツール類もアクセスできなくなる
    - プロビジョニング時に設定、またはプロビジョニング後に追加、変更できる
        - IPアドレス
        - CIDRブロック
        - VCN を設定できる。複数設定可能
- DBのリストアでは、既存のACLはOverwriteされない

## Private Endpoint
- ADBをパブリックにルーティングできない場合に使用する
    - VCNのプライベートエンドポイントを指定する
    - プライベートサブネットのプライベートIPを持つ
- 新規プロビジョニング、クローニングするときに指定可能
- VCNを事前に作成する必要がある。
    - デフォルトDHCPオプションを持つプライベートサブネット
    - 1つ以上のNetwork Security Group
        - 1522ポートのイングレスTCPを開ける
        - 5つまで設定可能
- Always Freeでは利用できない

## Auto Indexing
- 手動でIndexを作成するには、データモデル、アプリケーション、データの配布方法などの高度な知識が必要
    - 改善には手間がかかるので、不要なIndexがパフォーマンスに影響を与える。
- Auto Indexing機能により、データベースがアプリケーションワークロードを監視し、Indexを自動で作成、管理する
    - 一定の間隔で実行する自動タスクとして実装される
    - 機械学習アルゴリズムを使用
    - 自動的にチューニングされる
- 自動Index作成プロセス
    - Capture　取得
        - SQL文と実行時間、プラン、バインド値、実行統計などを定期的にリポジトリに取得
    - Identify　識別
        - 候補となるIndexを識別する
    - Verify
        - 候補となるIndexを実際に使用するかどうかをオプティマイザに確認する
            - 使用しない場合は、オプティマイザによって自動的に削除される
            - 使用された場合、Indexの作成が完了し、パフォーマンスが改善されたことが確認される
    - Decide
        - パフォーマンスが向上すると、Indexが表示可能としてマークされる
        - パフォーマンスが悪い場合は、Indexが削除される
            - 古い実行計画がリストアされる
    - Monitor
        - Indexの使用状況を継続的に監視する
            - 長時間使用されていないIndexは削除される
- Auto Indexingはデフォルトで無効
    - DBMS自動Indexの構成プロシージャを使用して、有効化できる
        -  `SQL> EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','IMPLEMENT');`
    - 無効化、Indexの保存期間の設定も可能
        - デフォルトの保存期間は373日
    - スキーマー単位でも有効/無効を指定可能
        - データベース全体で有効になっている場合は、すべてのスキーマーで有効

## Data Safe
- Oracle Data SafeはOCI上のDBサービスの統合コントロールセンター
    - ダッシュボード
    - すべてのDBサービスのセキュリティの管理、評価
        - ADB以外でも使える。オンプレも
    - データマスキングツール
    - レポート
    - ユーザ評価、ユーザアクティビティ
- 基本無料
    - ターゲット（DB？）あたり、毎月100万ドルの監査ベクターを超えた場合に課金される。
        - 1万件あたり0.08ドル
- 有効化方法
    - デフォルト無効
    - OCIコンソールから「データ・セーフ」を有効化する
    - ADBのコンソールからデータ・セーフに登録する

## Patch / Upgrade (Shared)
- ADBプロビジョニング/クローニング時に「Regular」「Early」の2つからパッチレベルを選択する
    - パッチレベルの変更はできない
    - Earlyを選択すると、定期的なスケジュール済パッチの1週間前にパッチが適用される
- インスタンスごとに次回のメンテナンススケジュールがコンソールに表示される
    - スケジュールの変更はできない
- メンテナンスウィンドウは通常2時間以内
- パッチ適用時もDBは利用可能

## Connecting to ADB
- ADBのデータやネットワーク通信はデフォルトで暗号化される
    - 無効化はできない
- デフォルトでは、ADBがすべてのマスターキーを作成、管理する
    - ADBがデプロイされているExadata上のセキュアなキーストアに格納される
    - 必要に応じて、客がキーを作成、管理することもできる
- ADBに接続するには、Wallet Credential Fileをダウンロードする必要がある
    - コンソールからダウンロード
    - API Callでもダウンロードできる

- 事前定義済データベースサービス名
    - tpurgent
        - ATP専用
        - Time-criticalトランザクション処理のための最も優先度の高いアプリケーション接続サービス
        - 手動による並列処理をサポート
    - tp
        - ATP専用
        - トランザクション処理用の一般的なアプリケーション接続サービス
        - 並列処理はできない
    - high
        - レポート、バッチ操作用
        - すべての操作は並列実行され、キューイングされる
    - medium
        - レポート、バッチ操作用
        - 並列実行され、キューイングされる
        - 4パラまで
    - low
        - レポート、バッチ処理用
        - 並列処理できない

- 証明書のzipファイル内にあるtnsnames.oraファイルには上記5つのデータベースサービス名が含まれている
- ADB Sharedの場合、インスタンスウォレットとリージョナルウォレットがある
    - インスタンスウォレット
        - 一つのADBの証明書とKeyが含まれる
    - リージョナルウォレット
        - 指定したリージョン内のすべてのADBの証明書とKeyが含まれる
        - DBAのみが使用する
- ADB Dedicatedの場合、リージョナルウォレットはない。インスタンスウォレットのみ

## SQL Developerからの接続
- Connection
    - admin user/passwordを入力
    - Connection Type：「Cloud Wallet」を選択
        - ダウンロードしたWalletファイルを指定
        - Serviceに使用できるサービス名が表示されるので、選択する

### SQL Developer Webへの接続
- OCIコンソール → ツール → データベース・アクション
    - admin user/passwordでログイン
    - SQLを選択
- 新しいユーザにアクセス権を付与するには、`ords_admin.enable_schema` パッケージを実行し、接続先URLのアクセス権をユーザに割り当てる。

## ApplicationとのConnectivity
- ツール、言語
    - SQL*Net
    - JDBC/ODBC
    - Python
    - Node.js　など
- クライアントはCredential Walletが必要
- Listener Port：1522
- 経路
    - Public Internet
    - Private Endpoint
    - FastConnect with Pbulic peering
- Oracle Call Interface

### Oracle Call Interface / JDBC / ODBC
- Oracle Net ServiccesがZipファイルのままだと読み取れないので、解凍する必要がある
    - sqlnet.oraファイルのWALLET_LOCATION変数に場所を指定する
- TNS_ADMIN変数にWalletファイルの場所を指定する
- Oracle Client 11.2.0.4以降が必要

### .NETアプリケーション
- Visual Studioを使用している場合
    - ODTファイルとマネージドODP.NETファイルをダウンロード、インストールする
- NuGetを使用している場合
    - NuGet Package Managerを使用して、マネージドODTファイルとODT.NETファイルをダウンロード、インストールする
- アンマネージODP.NETまたはOracle Universal InstallerバージョンのOracle Data Access Components（ODAC）を使用している場合
    - ODTファイルの代わりにODACファイルをダウンロードする

- ファイルがインストールされたら、sqlnet.oraファイルのWALLET_LOCATION変数に場所を指定する
- TLS 1.2をEnableにする

### Proxy経由の接続が必要な場合
- tnsnames.oraにhttps_proxyとhttps_proxy_portを追加する必要がある
- JDBC Thin Client 18.1以降が必要

### AD（MS Active Directory）連携
- ADがDBユーザの認証認可データを保持する
    - パスワード、Kerberos、PKI認証をサポートする
    - ADのユーザ/グループは排他的ユーザとしてスキーマーにマッピングすることが可能。
    - 共有スキーマーにマッピングすることも可能
    - ADのアカウントポリシーで一元管理可能

## Autonomous Data Guard
- RAC, Active DataGuard, Transparent Application Continuityが含まれている
- SLA：99.995%

## 通知
- スケジューリングされたADBのシャットダウンを通知するには、DBMS_SNMPパッケージを使ってNotification Alertを設定する

# ADB Tools
ADBには、Webベースの開発ツールが用意されており、別途購入するものはない。

##  Database Action
- SQL Developer、データモデラー、RestAPI、JSONドキュメントなどのツールがある
    - SQL Developer
        - SQL、PL/SQL文を入力、実行し、データベースオブジェクトを作成できる
            - テーブル作成、データ挿入、トリガー作成、ファイルへの保存
        - ハイライト表示、エラー検出
    - データモデラー
        - データベースオブジェクトのリレーショナルダイアグラムを作成
            - スキーマからのダイアグラム作成、データディクショナリ情報の取得、DDL文の生成
    - REST API
        - 公開鍵のフィンガープリント、テナンシーOCID、ユーザOCIDが必要
    - JSON
        - JSONドキュメント・データベースの管理
    - チャート
        - データベースのデータをビジュアル化
    - APEX
    - データポンプ
    - データロード
        - ロカールファイルまたはリモートデータベースからデータのロードやアクセスを行う
    - カタログ
        - データ依存および変更の影響を理解する
    - データインサイト
        - データ内の異常や外れ値、非表示のパターンを検出
    - ビジネスモデル
        - パフォーマンスおよび分析のビジネスモデルを作成
    - データベースユーザー
        - ユーザの作成、権限、パラメータの編集
        - RESTの有効化
    - パフォーマンスハブ
        - 統合パフォーマンスデータを表示

## APEX（Oracle Application Express）
- スケーラブルでセキュアなエンタープライズアプリケーションを開発できるローコード開発プラットフォーム
    - 利用するユーザ数に制限はない

## Oracle Machine Learning

### Auto ML
- 自動モデルチューニングによる自動アルゴリズム
    - データサイエンティストの生産性を向上させながら、コンピューティング時間を削減する。また、専門家以外でも機械学習を活用できるようにする
- 3つの主要な関数で構成されている
    - Auto Algorithm Selection
        - 最も高品質なモデルを実現できるアルゴリズムを識別
    - Auto Feature Selection
        - モデルに付加価値を与えない機能を排除することで、データのノイズを除去する
        - モデルの精度向上、モデルの構築やスコアリングの高速化
    - Auto Model Tuning
        - アルゴリズムのハイパーパラメータ（アルゴリズムの動作を決定するパラメータ）を調整する。

### OML4Py
- 機械学習アルゴリズムにネイティブSQLでアクセスするほかに、PythonやRでもアクセスできるようにする

### Data Insights
- 隠れたパターン、異常値、外れ値を自動的に発見する
    - ダッシュボードに表示され、ドリルダウンすると、期待値と異なる値がハイライトされる

# Developing on ADB
## AJD
- AJDはATPだが、JSONドキュメントを使用するNoSQLアプリケーションを開発するために設計されている。
    - AJDをATPに昇格させることが可能
    - SODA APIを使用してJSONドキュメントを保存、取得するアプリケーションやSQLを使用してJSON形式で保存されたデータを取得するアプリケーションをサポート
        - Simple Oracle Document Access (SODA)はNoSQL形式のAPIセットであり、これを使用すると、Oracle Databaseのドキュメント(特にJSON)のコレクションを作成および格納でき、Structured Query Language (SQL)や、ドキュメントがどのようにデータベースに格納されているかを理解していなくても、そのコレクションの取得や問合せを行うことができます。
    - データをリレーショナルテーブルに正規化する必要はない。
    - SQLの知識がなくてもドキュメントAPIを使用してアプリケーション開発が可能
    - ADBなので、データベースを管理するDBAは不要
- スキーマレス
- Oracle DB 12c以降、JSONドキュメントをサポート
    - JSONをRDBのように操作できる
- JSONの保存単位は「Document」
    - Documentにはキーが関連付けられていて、このキーを使って作成、読み取り、更新、削除などの操作を行う
- Documentの集まりが「Collection」
    - Collectionは「Name」で識別する
- Collectionの集まりが「Database」
    - ドキュメントアプリケーションは、データベースに接続し、そのDB内の任意のコレクションにアクセス可能
    - ストレージの制限はない。
- Documentはテーブルの「Raw」で表される。Collectionは「Table」に格納されている。Databaseは「Schema」

## Oracle Text
- Oracle Textは標準的なSQLを使用して、Oracle DBに格納されたテキストやドキュメントをインデックス、検索、分析する。
    - SQLインターフェイスを持つすべてのプログラミング言語で使用可能
- Oracle TextはADBで自動的に有効になる。
    - テキスト、XML、HTML、JSONに対するフルテキスト検索機能が提供される
- データベース外のデータも扱うことができる
    - ファイルシステム上、Web上のデータ
        - Word、PDFなど150種類以上扱える
        - ADBがフォーマットインデックスとして処理する
- Indexing Pipeline
    - Data Store
    - Filter
        - バイナリ文章をインデックス可能なテキストに変換する
    - Sectioner
        - 段落や文章などを識別する
    - Lexer
        - テキストをインデックス可能な単語に分割する
    - Index Engine

## Spatial Data on ADB
### Spatial Data（空間データ）とは
サポートされているジオメトリックデータタイプの保存、構文、セマンティクスを規定するスキーマ（MDSYS）で構成されている。

- 場所を表すあらゆるビジネスデータ
    - GPS、住所、郵便番号など
- Raster Data
    - 衛星画像、LiDARデータ、DARデータなど
- ネットワークデータ、ネットワーク空間データ
    - 公共施設や交通機関など

- Spatial Dataはユニバーサルキーとして機能する。
    - 同じ場所で起こったことを除いて、他には何の共通点がないデータセット間の関係を作り出すことができる。

### ADBによるデータマネージメント
- ADBはPoint、Line、Polygon、ImageryなどのSpatial Dataをネイティブタイプで保存できる
- Spatial Dataへのアクセス
    - APIやライブラリを使用
        - SQL、PL/SQL、JavaScript、Node.js、Python、REST

### Loading Spatial Data
- Data Pump、GoldenGateはSpatial Dataをサポートしている
- ETLツールとして、FME、GDAL/OGRを使用できる

### Spatial Studio
- ノーコード型セルフサービスアプリケーション
- ADBに付属しており、追加コスト不要
    - 稼働するためのコンピュートインスタンスは必要。これのコストは必要
    - テスト目的だったらPCで実行できるQuickstartバージョンがある
    - OCI Marketplaceにある
    - ADBだけでなく、Oracle DBにもアクセスできる
- データのアップロードも可能
- マップなどのGUIでデータを可視化
    - SQLを生成することもできる
    - GeoJSONエンドポイントにアプリケーションからアクセスすると、JSONで結果を取得できる

## Graph
- Use Case
    - Financial
        - グラフ化することで、異常なパターンを検出して、不正行為を検知する
    - Retail
        - ターゲットマーケティング
    - Law Enforcement
        - データの隠れた関連性の見つけ出す
    - Manufacturing
        - 部品表をモデル化し、依存関係の分析
    - Pattern Matching
    - Clustering

### Create Graph
- ADBの自動モデリング機能は、グラフに含めたいテーブルを選択するだけで、モデラーがグラフを作成してくれる。
- property graph query language （PGQL）
    - SQLに似た言語でselect文とfrom文を持つ

### Graph Studio
- ADBコンソールの「ツール」配下にある
- 機械学習アルゴリズム、Python API、Java APIを追加予定
- オンプレのOracle DBでも利用可能
    - 12.2以降
    - グラフサーバ/クライアントパッケージはMarketplace、Software Edeliveryからダウンロードできる
- グラフを作成する場合、「ADBインスタンスのテーブル」オプションを使用する

## Object Storage
- ADBは様々なデータにアクセスするためのセルフサービスツールを提供している
    - ドラックアンドドロップでオブジェクトストレージからDBにデータをロードできる
        - 対応しているファイル形式
            - AVRO
            - JSON
            - CSV
            - Parquet
    - 外部テーブルを作成して、オブジェクトストレージのデータに動的にアクセスできる
        - 外部テーブルはユーザーからは他のテーブルと同じように見える
        - SQLでクエリ可能
        - DB全体で単一のセキュリティポリシー
        - Partitioningで1つのテーブルをより小さなコンポーネントに分割可能
            - ハイブリッドパーティションテーブルはデータをどこに保存するかをパーティションレベルで指定可能
            - 最新データはADBに保存し、過去データはオブジェクトストレージに保存とか
    - オブジェクトストレージにCSVなどのオープンフォーマットで保存すると、データレイクで分析しているSPARKなどの他のプロセスとデータを共用できる。
- ADBからObject Storageへの認証で使用できるもの
    - API Singning Key（API署名キー）
        - PEMフォーマットのRSAキーペア
        - OCI APIとSDK/CLIを併用する際に必要
    - リソース・プリンシパル
    - ユーザ名/パスワード

# Migration
- SQL DeveloperはデータをADBに直接ロードできる。
    - テキストやXLSなど
- Object Storageを介してデータをロードする方が効率的。S3 Azure Blobストレージでもよい。
    - Object StorageにあるデータならADBは直接アクセスできる
    - 任意のデータ形式を扱える
- オンプレDBをADBに移行する場合、以下が必要。
    - PDBへの変換
    - 19cへのアップグレード
    - 暗号化
    - 出荷時のStored procedureやviewを変更していたら、元に戻す
    - CDB Admin権限の削除
    - レガシーLOBなどのサポートされていない機能の削除

- Migration tools
![2021-11-05-14-42-21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/39aeece9-7738-10ac-017f-b49c4ca030a8.png)


- DBMS_CLOUD
    - ADBに組み込まれている機能
    - オブジェクトストレージからのデータ移行が可能
        - S3、Blob Storageも利用可能
    - ソースからのデータはCSVまたはJSONでエクスポートされる
    - REST API対応
- SQL*Loader
    - クライアントのローカルファイルシステムにあるデータをADBに読み込むために使用できる
- Data Pump
    - DBの全部または一部をADBに移行するのに最適
    - Export/Importプロセスの一部でアップグレードする
    - ソースDBが10g以降
    - クロスエンディアン
    - 指定したViewをテーブルとしてエクスポートできる
    - 既存ダンプファイルの上書きが可能
    - スキーマやデータファイルの再マッピングができる

# 結果
スコア83％で合格できました。

https://www.credly.com/badges/1134fe7a-3876-4d34-aae7-8f14eb7531a6/public_url