データ・ストリームの作成と管理
ユーザー・インタフェースからのデータ・ストリームの作成
-
左側のナビゲーション・ペインで、「データ・ストリーム」を選択して「データ・ストリーム」ページを開きます。
-
「データ・ストリームの追加」ボタンをクリックします。「データ・ストリームの追加」ダイアログ・ボックスが表示されます。

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

-
ビジネス所有者、ソース証跡、表、コンシューマおよびリカバリ目標とともに説明を追加します。
-
「ソース・オプション」ページで、次のイメージに表示されているオプションの値を指定します。

-
証跡名: ソース証跡ファイルの名前。証跡名は、サービスによって受け入れられるソース証跡接頭辞またはソース・エンドポイントを識別する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でラップします。デフォルトでは無効です。デフォルトでは、この形式は無効になっていますが、データ・ストリーミング・チャネルの作成時にトグル・スイッチを使用してプロパティを有効にすることで制御できます。
-
-
「フィルタリング・オプション」ページでは、次のイメージに示すように、フィルタリング・ルールを含めるオプションと除外するオプションが利用できます。

フィルタリング・ルール・オプションを次のように指定します。
-
ルール・アクション: 「除外」または「含める」オプションを選択します。
-
フィルタ・タイプ: フィルタ・タイプには次のものがあります。
オブジェクト・タイプ: DML、「DDL」、「INSERT」、「UPDATE」、「UPSERT」、「DELETE」など、ドロップダウン・リストから複数のオプションを選択できます。
オブジェクト名: 以前に作成したフィルタリング・オブジェクトの名前。
-
「追加」をクリックして、データ・ストリーム・プロセスにフィルタリング・ルールを追加します。
-
「データ・ストリームの作成」をクリックします。データ・ストリームがリストされている分散サービスのホームページが表示されます。
-
作成したデータ・ストリームをクリックして、ストリームのYAMLドキュメントのデータ・ストリーミングAsyncAPI定義を表示します。
ユーザー・インタフェースからのデータ・ストリーム構成の編集
データ・ストリームの構成を編集するには:
-
左のナビゲーション・ペインから、「データ・ストリーム」をクリックします。
-
変更する必要があるデータ・ストリームの名前を選択します。
-
「データ・ストリーム」ページで、「アクション」列を使用して、データ・ストリームの詳細の表示、データ・ストリームの削除、およびフィルタリングの変更を行います。

-
「アクション」メニューから「フィルタの変更」オプションをクリックすると、「データ・ストリーム・フィルタリング・ルールの編集」ダイアログ・ボックスが表示されます。このボックスを使用して、ルール・アクション(包含、除外)およびフィルタ・タイプ(オブジェクト名またはオブジェクト・タイプ)を変更できます。
-
フィルタリングを適用するには、「追加」をクリックします。
-
「発行」をクリックして、「データ・ストリーム」ページに戻ります。
「名前」列からデータ・ストリームをクリックすると、データ・ストリームをさらに編集できます。これにより、完全なデータ・ストリーム構成が表示されます。構成設定を変更するには、各構成設定の横にある鉛筆アイコンを使用します。データ・ストリームで使用されるソース証跡ファイル、フィルタリング・ルールおよびサービス品質を変更できます。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問合せパラメータ、メッセージ・ペイロードおよびサポートされているレコード・スキーマが含まれます。作成後およびすべての構成変更後に取得します。レビューしたコピーをコンシューマ・リリースとともに格納しますが、デプロイメントの検証時に常にランタイム・バージョンと比較します。