データ・ストリームの作成と管理

ユーザー・インタフェースからのデータ・ストリームの作成

  1. 左側のナビゲーション・ペインで、「データ・ストリーム」を選択して「データ・ストリーム」ページを開きます。

  2. 「データ・ストリームの追加」ボタンをクリックします。「データ・ストリームの追加」ダイアログ・ボックスが表示されます。

    「データ・ストリームの追加」ボタンが表示された「データ・ストリーム」メイン・ページ

  3. 「データ・ストリーム情報」ページで、「名前」ボックスに一意のリソース名を入力します。

    名前は1から32文字の間である必要があります。文字で始まること。チェックポイントはストリーム契約にスコープ指定されるため、安定した名前を使用します。「次」をクリックします。

    「データ・ストリームの追加」ダイアログ・ボックス: 「データ・ストリーム情報」ページ

  4. ビジネス所有者、ソース証跡、表、コンシューマおよびリカバリ目標とともに説明を追加します。

  5. 「ソース・オプション」ページで、次のイメージに表示されているオプションの値を指定します。

    「データ・ストリーム」ダイアログ・ボックス: 「ソース・オプション」ページ

    • 証跡名: ソース証跡ファイルの名前。証跡名は、サービスによって受け入れられるソース証跡接頭辞またはソース・エンドポイントを識別する2文字である必要があります。

    • トレイルのサブディレクトリ: 証跡ファイルが格納されるサブディレクトリのパス。これは、ソース証跡が格納されるGoldenGateデプロイメントの下にあるディレクトリです(デフォルトの場所にない場合)。

    • エンコーディング: このオプションは、データ・ストリームのレコードのエンコーディングを制御します。現在、JSONエンコーディングがサポートされています。拡張JSONオプションには、YAMLエディタまたはREST構成を使用します。

    • バッファ・サイズ: この値は、データ・ストリーミング・サービスで使用されるメモリー・バッファ・サイズを制御します。データ・ストリーミング・サービスは、合計バイト・サイズが指定された値を超えた後、インメモリーのメッセージ・キューがフラッシュし、レコードをクライアントに配信します。範囲は131,072 ~ 10,485,760、デフォルトは1,048,576です。これは永続保存ではありません。

    • サービス品質: このオプションは、データ・ストリームの重複抑制およびリカバリ動作を定義します。exactlyOnce、atLeastOnceまたはatMostOnce。

      デフォルト以外の値を選択する前に、Checkpointing、 Recovery、 and Delivery Semanticsを参照してください。

      データ・ストリーミング・サービスでは、3つのレベルのサービス品質がサポートされています。

      • 必ず1回: このモードは最も制限の厳しいモードであり、リカバリ中またはソース証跡のRESTART OK/ABENDレコードの表示中に、重複レコードが除外されます。クライアントには重複レコードは表示されません。指定された最後の処理位置のレコードが見つからない場合は、エラーが発生します。

      • 少なくとも1回: このモードでは、リカバリ中またはソース証跡のRESTART OK/ABENDレコードの表示中に、重複レコードが抑止されません。クライアントには、データ・ストリームの重複レコードが表示される場合があります。また、指定された最後の処理位置のレコードが見つからない場合は、エラーが発生します。

      • 多くても1回: このモードでは、リカバリ中またはソース証跡のRESTART OK/ABENDレコードの表示中に、重複レコードは抑制されます。クライアントには、データ・ストリームの重複レコードは表示されません。指定された最後の処理位置のレコードが見つからない場合は、次の使用可能なレコードを見つけ、先に進みます。

    • CloudEvents形式: データ・ストリーミング・サービスでは、CloudEvents形式でのデータ・レコードの転送がサポートされています。GoldenGateレコードをCloudEvents JSONでラップします。デフォルトでは無効です。デフォルトでは、この形式は無効になっていますが、データ・ストリーミング・チャネルの作成時にトグル・スイッチを使用してプロパティを有効にすることで制御できます。

  6. 「フィルタリング・オプション」ページでは、次のイメージに示すように、フィルタリング・ルールを含めるオプションと除外するオプションが利用できます。

    データ・ストリーム・ダイアログ・ボックス:

    フィルタリング・ルール・オプションを次のように指定します。

    • ルール・アクション: 「除外」または「含める」オプションを選択します。

    • フィルタ・タイプ: フィルタ・タイプには次のものがあります。

      オブジェクト・タイプ: DML、「DDL」、「INSERT」、「UPDATE」、「UPSERT」、「DELETE」など、ドロップダウン・リストから複数のオプションを選択できます。

      オブジェクト名: 以前に作成したフィルタリング・オブジェクトの名前。

「追加」をクリックして、データ・ストリーム・プロセスにフィルタリング・ルールを追加します。

  1. 「データ・ストリームの作成」をクリックします。データ・ストリームがリストされている分散サービスのホームページが表示されます。

  2. 作成したデータ・ストリームをクリックして、ストリームのYAMLドキュメントのデータ・ストリーミングAsyncAPI定義を表示します。

ユーザー・インタフェースからのデータ・ストリーム構成の編集

データ・ストリームの構成を編集するには:

  1. 左のナビゲーション・ペインから、「データ・ストリーム」をクリックします。

  2. 変更する必要があるデータ・ストリームの名前を選択します。

  3. 「データ・ストリーム」ページで、「アクション」列を使用して、データ・ストリームの詳細の表示、データ・ストリームの削除、およびフィルタリングの変更を行います。

    データ・ストリームのフィルタリングを変更します。

  4. 「アクション」メニューから「フィルタの変更」オプションをクリックすると、「データ・ストリーム・フィルタリング・ルールの編集」ダイアログ・ボックスが表示されます。このボックスを使用して、ルール・アクション(包含、除外)およびフィルタ・タイプ(オブジェクト名またはオブジェクト・タイプ)を変更できます。

  5. フィルタリングを適用するには、「追加」をクリックします。

  6. 「発行」をクリックして、「データ・ストリーム」ページに戻ります。

    「名前」列からデータ・ストリームをクリックすると、データ・ストリームをさらに編集できます。これにより、完全なデータ・ストリーム構成が表示されます。構成設定を変更するには、各構成設定の横にある鉛筆アイコンを使用します。データ・ストリームで使用されるソース証跡ファイル、フィルタリング・ルールおよびサービス品質を変更できます。YAMLエディタを使用して、データ・ストリーム構成を変更し、YAMLエディタの横にある変更のアップロードアイコンを使用して変更をのアップロードすることもできます。

REST APIを使用したデータ・ストリームの作成

管理者アカウントでPOST /services/v2/stream/{streamName}を使用します。最小リクエストはソース証跡を識別します。

{
  "$schema": "ogg:dataStream",
  "source": {
    "trail": "ea",
    "path": "./dirdat"
  }
}

本番リクエストでは、通常、サービス品質、フィルタ、JSONスキーマの発行、メタデータ・フィールドおよびサイズ制御が明示的に設定されます。サポート・ファイルdata_stream_create_request.jsonには、完全なサニタイズ済の例が含まれています。

{
  "$schema": "ogg:dataStream",
  "description": "Streams sales order changes",
  "source": {"trail": "ea", "path": "./dirdat"},
  "qualityOfService": "exactlyOnce",
  "bufferSize": 1048576,
  "tcpKeepAliveTimeout": 120,
  "cloudEventsFormat": false,
  "rules": [
    {
      "action": "include",
      "filter": {"objectNames": ["SALES.ORDERS", "SALES.ORDER_ITEMS"]}
    }
  ],
  "encoding": {
    "json": {
      "$schema": "ogg:outputFormatJson",
      "model": "op",
      "includeJSONSchemaRecord": true,
      "includeObjectMetadataRecords": true,
      "includeStreamMetadataRecord": true,
      "metaFields": {
        "qualifiedTable": true,
        "opType": true,
        "opTs": true,
        "pos": true,
        "xid": true,
        "csn": "csn",
        "opSeqno": "op_seqno",
        "transInd": "trans_ind"
      }
    }
  }
}

トップレベルの構成プロパティ

次の表に、ストリームの構成に使用される構成プロパティを示します。

プロパティ タイプ/デフォルト 摘要
$schema 文字列/ogg:dataStream 構成スキーマ識別子。
source オブジェクト/必須 ソース証跡とオプションのパス。
description 文字列/なし データ・ストリームを説明する1文字から4,096文字。
qualityOfService 列挙/exactlyOnce atLeastOnce、exactlyOnceまたはatMostOnce。
bufferSize 整数/ 1,048,576 フラッシュしきい値(バイト)。最小131,072、最大10,485,760。
tcpKeepAliveTimeout 整数/ 120 TCPキープアライブ・タイムアウト(秒)。最小1、最大10,800。
cloudEventsFormat ブール/false CloudEvents JSONエンベロープを有効にします。
rules 配列/なし 1から1,024の包含ルールまたは除外ルール。
encoding 文字列またはオブジェクト/json デフォルトの場合は"json"、詳細出力設定の場合は{"json": {...}}を使用します。

データ・ストリームの取得、更新、リストおよび削除

次の表を使用して、データ・ストリームを管理または削除します。

タスク メソッドとパス 役割
ストリームのリスト GET /services/v2/stream ユーザー
構成の取得 GET /services/v2/stream/{streamName} 演算子
生成されたYAMLの取得 GET /services/v2/stream/{streamName}/yaml ユーザー
構成の更新 PATCH /services/v2/stream/{streamName} 管理者
YAMLの更新 PATCH /services/v2/stream/{streamName}/yaml 管理者
ストリームの削除 DELETE /services/v2/stream/{streamName} 管理者

注意:フィールド名、操作文字列、レコード・モデル、フィルタまたはスキーマの放出を変更すると、消費者契約が変更されます。本番ロールアウトの前に、変更を調整し、契約をバージョニングし、既存のチェックポイントから再起動をテストします。

生成されたYAMLをデプロイ済契約として使用します

生成されたYAMLには、デプロイメント固有のサーバー、チャネル・アドレス、begin問合せパラメータ、メッセージ・ペイロードおよびサポートされているレコード・スキーマが含まれます。作成後およびすべての構成変更後に取得します。レビューしたコピーをコンシューマ・リリースとともに格納しますが、デプロイメントの検証時に常にランタイム・バージョンと比較します。