データ・フローの設定

データ・フローでアプリケーションを作成、管理および実行する前に、テナント管理者(またはバケットを作成してIAMを変更するための昇格された権限を持つユーザー)は、IAMにグループ、コンパートメント、ストレージおよび関連付けられたポリシーを作成する必要があります。

図1. データ・フローとの間の接続の概要
上部には、ユーザーのグループ(ETL、データ・エンジニアリング、管理、SQLユーザーおよびデータ・サイエンス)があります。DISワークスペースのETLグループ・ユーザーは、データ・フローの様々なデータ・ソースからデータをロードします。データ・エンジニアリング、管理およびSQLユーザー・グループによってクリーンアップおよび準備されます。データは、ノートブック内のデータ・サイエンティストが処理し、モデル・カタログを使用できる様々なデータベースに送信されます。
データ・フローの設定に必要なステップは次のとおりです:
  • アイデンティティ・グループの設定。
  • コンパートメントおよびオブジェクト・ストレージ・バケットの設定。
  • アイデンティティおよびアクセス管理ポリシーの設定

アイデンティティ・グループの設定

一般的に、データ・フロー・ユーザーは、ユースケースと権限レベルを明確に分離するために、3つのグループに分類されます。

アイデンティティ・サービスで次の3つのグループを作成し、各グループにユーザーを追加します:

  • dataflow-admins
  • dataflow-data-engineers
  • dataflow-sql-users
dataflow-admins
このグループのユーザーは、データ・フローの管理者またはスーパーユーザーです。データ・フローに対するアクションを実行したり、データ・フローに関連する様々なリソースを設定および管理する権限があります。他のユーザーが所有するアプリケーションおよびテナンシ内のユーザーが開始した実行を管理できます。データ・フロー管理者には、データ・フローによってオンデマンドでプロビジョニングされたSparkクラスタへの管理アクセスは必要ありません。これらのクラスタはデータ・フローによって完全に管理されるためです。
dataflow-data-engineers
このグループのユーザーには、データ・エンジニアリング・ジョブのデータ・フロー・アプリケーションおよび実行を管理および実行する権限があります。たとえば、データ・フローのオンデマンド・サーバーレスSparkクラスタでExtract Transform Load (ETL)ジョブを実行します。このグループのユーザーは、データ・フローによってオンデマンドでプロビジョニングされたSparkクラスタへの管理アクセスも必要ありません。これらのクラスタはデータ・フローによって完全に管理されるためです。
dataflow-sql-users
このグループのユーザーには、JDBCまたはODBCを介してデータ・フロー対話型SQLクラスタに接続して対話型SQL問合せを実行する権限があります。

コンパートメントおよびオブジェクト・ストレージ・バケットの設定

データ・フローのコンパートメントおよびオブジェクト・ストレージ・バケットを作成するには、次のステップに従います。

データ・フローでは、オブジェクト・ストレージに4つの特定のストレージ・バケットを想定しています。クラウド・リソースを編成および分離するデータ・フロー専用のコンパートメントを作成することをお薦めします。コンパートメントの詳細は、IAMのドキュメントを参照してください。
  1. dataflow-compartmentというコンパートメントを作成します。
    コンパートメントは、コンソールを使用またはAPIを使用して作成できます。
  2. dataflow-compartmentコンパートメントの下に、オブジェクト・ストレージに次のストレージ・バケットを作成します:
    • dataflow-logs
    • データフロー・ウェアハウス
    • マネージド・テーブル・バケット
    • 外部表バケット
    dataflow-logs

    データ・フローでは、アプリケーション実行ごとにログ(標準出力と標準エラーの両方)を格納するバケットが必要です。標準のストレージ層バケットとして作成します。バケットの場所は、パターンoci://dataflow-logs@<your_object_store_namespace>/に従う必要があります。

    データフロー・ウェアハウス

    データ・フローには、Spark SQLアプリケーションのデータ・ウェアハウスが必要です。標準のストレージ層バケットとして作成します。ウェアハウスの場所は、oci://dataflow-warehouse@<your_object_store_namespace>/のパターンに従う必要があります。

    マネージド・テーブル・バケットおよび外部テーブル・バケット
    オブジェクト・ストレージ内の非構造化データ・アセットおよび半構造化データ・アセットの場合、データ・フローでは、スキーマ定義を安全に格納および取得するためにメタストアが必要です。データ・カタログ・メタストアは、Hive互換メタストアを、複数のOCIサービス間で共有される永続的な外部メタデータ・リポジトリとして提供します。データ・カタログでメタストアを作成する前に、オブジェクト・ストレージに2つのバケットを作成して、管理対象表および外部表を含める必要があります。これらのバケットには、managed-table-bucketおよびexternal-table-bucketという名前を付けることをお薦めします。
    • Managed-table-bucketは、データ・カタログのHive互換メタストアのManaged Tableに関連するリソースに使用され、メタストアは表オブジェクトを管理します。
    • External-table-bucketは、表オブジェクトを管理するデータ・カタログのHive互換メタストア内のExternal Tableに関連するリソースに使用されます。