リレーショナルデータベースのトピック構造
リレーショナルデータベースでトピックを作成するとき、パブリケーションによるデータのパブリッシュ先となりサブスクリプションによるデータのコンシューム元となるパブリケーションリポジトリのデータ構造を定義します。トピック構造は複数のテーブルで構成することができます。
Cloud Integration Hubは、トピックにパブリッシュされるデータを保持するパブリケーションリポジトリにテーブルを生成します。Cloud Integration Hubは、トピックに関連付けられたパブリケーションおよびサブスクリプションのデータ構造を使用します。
例えば、販売データを表すSalesトピックを作成します。組織内のすべての店舗のアプリケーションは、販売データをSalesトピックにパブリッシュします。経理アプリケーションはSalesトピックにサブスクライブして、すべての店舗からパブリッシュされた販売データをコンシュームします。フィルタが適用されている場合は、特定の店舗からパブリッシュされたデータをコンシュームできます。
Cloud Integration Hubでパブリッシュおよびコンシュームされるデータのパブリケーションおよびサブスクリプションを定義する前に、Cloud Integration HubのパブリケーションリポジトリでCloud Integration Hubにパブリッシュされるデータを保持する標準の構造を定義する必要があります。標準の構造は、トピックを定義するときに定義します。異なるソースのデータセットを表す複数のトピックを定義できます。
リレーショナルデータベースでのトピックテーブルの作成
次の方法で、リレーショナルデータベースにトピックテーブルを作成できます。
- •接続からテーブルを作成します。この方法は、トピックが表すデータドメイン内のテーブルの構造が接続オブジェクトに存在する場合に使用します。リレーショナル、フラットファイル、JDBC_IC、JDBCV2、およびSalesforce接続を使用して、トピックテーブルを作成できます。[接続からテーブルを追加]ダイアログボックスには、最大200個のテーブルが表示されます。接続からオブジェクトを検索することもできます。
- •フラットファイルからテーブルを作成する。トピックが表しているデータドメイン内のテーブルの構造がフラットファイルに格納されている場合は、この方法を使用します。
- •メタデータファイルからテーブルを作成する。この方法は、トピックが表しているデータドメイン内のテーブルの構造がJSON、XML、XLS、またはXLSXファイル内に存在する場合に使用します。詳細については、メタデータファイルを使用したトピックテーブルの作成リレーショナルデータベースでのメタデータファイルを使用したトピックテーブルの作成▼前の分節と統合▼を参照してください。
- •新しいテーブルを作成する。テーブルの構造が互換性のあるファイルに格納されていない場合は、この方法を使用し、構造を手動で定義します。
1つのトピックにテーブルを作成する方法は複数あります。例えば、フラットファイルから2つのテーブルを作成する、メタデータファイルから3つのテーブルを作成する、新しいテーブルを作成する、です。
メタデータファイルを使用したトピックテーブルの作成リレーショナルデータベースでのメタデータファイルを使用したトピックテーブルの作成▼前の分節と統合▼
Cloud Integration Hubにメタデータファイルをロードして、リレーショナルデータベースでファイル構造に基づくトピックテーブルを作成できます。
メタデータファイルを使用してトピックテーブルを作成するときは、ファイルでテーブル属性を定義してからCloud Integration Hubにロードできます。例えば、カラムデータ型と精度を定義したり、暗号化されていないフィルタアクセラレータとしてカラムを定義したりすることができます。
トピックテーブルを作成するときは、JSON、XML、XLS、およびXLSXメタデータファイルを使用できます。
メタデータファイルには次のフィールドが含まれている必要があります。その他のフィールドが含まれていてはいけません。
- columnName
- 必須。テーブルカラムの名前。名前は、英文字またはアンダースコアで開始する必要があり、英数字およびアンダースコアのみを含めることができます。
- filterAccelerator
オプション。サブスクリプションのクエリでカラムが使用されること、およびCloud Integration Hubによるパフォーマンス関連の処理が必要であることを示します。このインジケータは、バインドされていないサブスクリプションで使用予定のトピックとともに使用してください。デフォルト: false。
フィルタアクセラレータを使用する場合は、次のガイドラインを検討してください。
- - フィルタアクセラレータにより、Cloud Integration Hubパブリケーションリポジトリへのパブリケーションデータの書き込み速度は遅くなります。
- - フィルタアクセラレータは、フィルタを使用しないサブスクリプションには影響しません。
- - ホストされたCloud Integration Hubパブリケーションリポジトリの新しいトピックデータの暗号化を有効にすることができます。カラムをフィルタアクセラレータとして使用するには、カラムのencryptionフィールドの値をfalseに定義する必要があります。
- データ型
- オプション。フィールドのデータ型。デフォルト: string。
- ファイルには、次のデータ型のフィールドを含めることができます。
- - String
- - Decimal
- - Double
- - Int32
- - Int64
- - Date_time
- - テキスト
- 精度
- オプション。精度をサポートするデータ型に適用されます。デフォルトのprecisionの値は、フィールドのデータ型によって異なります。
- - string: 255
- - decimal: 15
- - text: 10000
- スケール
- オプション。データスケーリングをサポートするデータ型に適用されます。デフォルトのscaleの値は、フィールドのデータ型によって異なります。
- - Decimal: 0。decimalフィールドが暗号化されておらず、パブリッシュされた値がトピックのdecimalスケール値よりも小さい場合、Cloud Integration Hubはdecimal値にゼロを追加します。例えば、decimal値15.4にスケールとして4を定義すると、Cloud Integration Hubはdecimal値15.4000をともなうデータをパブリッシュおよびコンシュームします。
- - Date_time: 0。例えば、2022-02-04 00:40:23.946のdate_timeにスケールとして2を定義すると、Cloud Integration Hubはdate_timeを2022-02-04 00:40:23.950に丸めます。ホストされたパブリケーションリポジトリに適用されます。
- - その他すべてのデータ型: 空
- 暗号化
- オプション。ホストされたパブリケーションリポジトリに適用されます。
- 必須
- オプション。リレーショナルトピックテーブルに適用されます。このオプションがtrueに設定されている場合は、データが必須フィールドにパブリッシュされていることを確認してください。パブリッシュされたデータが、必要な必須フィールドの基準を満たしていない場合、イベントは失敗します。
いずれかの必須フィールドがファイルに含まれていない場合、Cloud Integration Hubへのファイルのロードは失敗します。
ファイルに同一の行が含まれる場合、Cloud Integration Hubは最初の行のみをトピックテーブルに追加します。
- JSONファイルでのテーブルの例
[
{"columnName":"id", "filterAccelerator": "false", "dataType": "int32", "encryption":false, "required":true},
{"columnName":"name", "filterAccelerator": "false", "dataType": "string", "precision" : 100, "encryption":false, "required":true},
{"columnName":"age", "filterAccelerator": "true", "dataType": "decimal", "precision" : 3, "encryption":"true", "required":true},
{"columnName":"city", "filterAccelerator": "True", "dataType": "string", "precision" : 50, "encryption":"FALSE", "required":true},
{"columnName":"salary", "filterAccelerator": false, "dataType": "decimal", "precision" : 15, "scale":2, "encryption":true, "required":true}
]
- XMLファイルでのテーブルの例
<table>
<column>
<columnName>id</columnName>
<dataType>int32</dataType>
<encryption>false</encryption>
<required>false</required>
<filterAccelerator>true</filterAccelerator>
</column>
<column>
<columnName>name</columnName>
<dataType>String</dataType>
<encryption>true</encryption>
<required>true</required>
<precision>100</precision>
<filterAccelerator>false</filterAccelerator>
</column>
</table>
- XLSまたはXLSXファイルでのテーブルの例
columnName | filterAccelerator | データ型 | 精度 | スケール | 暗号化 | required |
id | TRUE | Int32 | | | FALSE | true |
name | FALSE | String | 255 | | FALSE | true |
リレーショナルデータベースでのトピック構造の更新
リレーショナルデータベースで関連付けられたパブリケーションまたはサブスクリプションによってトピックの構造を編集すると、関連付けられたパブリケーションおよびサブスクリプションに影響することがあります。トピック構造の変更はパブリケーションリポジトリ内のデータにも影響する可能性があり、場合によってはデータが失われます。
更新内容によっては、関連付けられたパブリケーションおよびサブスクリプションを新しいトピック構造に合わせて編集することが必要になる場合があります。トピックの更新では、[処理中]または[遅延]のステータスにあるパブリケーションイベントまたはサブスクリプションイベントがあってはなりません。[処理中]のステータスにあるパブリケーションイベントまたはサブスクリプションイベントを
[イベント]ページで検索し、それらを更新する前にステータスを[破棄済み]に変更します。詳細については、
処理中ステータスにあるすべてのイベントの破棄を参照してください。
次の表に、トピック構造の更新がパブリケーションリポジトリ内のデータに及ぼす影響を示します。また、更新の結果、関連付けられたパブリケーションおよびサブスクリプションで必要となるオプションまたは必須の変更を示します。
トピック構造の更新 | パブリケーションリポジトリのデータに対する影響 | 関連付けられたパブリケーションおよびサブスクリプションに対するオプション/必須の変更 |
---|
テーブルの追加 | テーブルが追加される | オプション: 追加のテーブルをパブリッシュしてコンシュームするには、マッピングを編集してテーブルを追加します。 マッピングを更新しないと、テーブル内のデータはパブリケーションリポジトリにパブリッシュされず、サブスクリプションはデータを受け取りません。 |
テーブルの削除 | テーブル、およびテーブルにパブリッシュされていたデータが削除される | パブリケーションのマッピングおよびサブスクリプションのマッピングとフィルタから、テーブルへの参照を削除します。 |
カラムの追加 | カラムが追加される | オプション: 追加のカラムをパブリッシュしてコンシュームするには、マッピングを編集してカラムを追加します。 マッピングを更新しないと、カラム内のデータはパブリケーションリポジトリにパブリッシュされず、サブスクライバはデータを受け取りません。 |
カラムの削除 | カラムおよびカラムにパブリッシュされていたデータが削除される | パブリケーションのマッピングおよびサブスクリプションのマッピングとフィルタから、カラムへの参照を削除します。 |
カラム名の変更 | カラムおよびカラムにパブリッシュされていたデータが削除され、新しい名前で別のカラムが作成される | パブリケーションのマッピングおよびサブスクリプションのマッピングとフィルタから、変更済みカラムへの参照を削除します。 オプション: 新しい名前で作成されたカラムをパブリッシュまたはコンシュームするには、マッピングを編集して新しいカラムを追加します。 マッピングを更新しないと、新しいカラム内のデータはパブリケーションリポジトリにパブリッシュされず、サブスクライバはデータを受け取りません。 |
カラムデータ型の変更 | カラムおよびカラムにパブリッシュされていたデータが削除され、新しいデータ型で別のカラムが作成される | パブリケーションのマッピングおよびサブスクリプションのマッピングとフィルタから、変更済みカラムへの参照を削除します。 オプション: 新しいデータ型で作成されたカラムをパブリッシュまたはコンシュームするには、マッピングを編集して新しいカラムを追加します。 マッピングを更新しないと、新しいカラム内のデータはパブリケーションリポジトリにパブリッシュされず、サブスクライバはデータを受け取りません。 |
カラムの精度向上(スケールは変更なし) | カラムが更新される | 関連付けられたすべてのパブリケーションおよびサブスクリプションに対して、パブリケーションまたはサブスクリプションページを開きます。パブリケーションまたはサブスクリプションの設定を編集する必要はありません。 |
カラムの精度向上、および精度の向上分と同じか少ない値でスケールを向上 | カラムが更新される | 関連付けられたすべてのパブリケーションおよびサブスクリプションに対して、パブリケーションまたはサブスクリプションページを開きます。パブリケーションまたはサブスクリプションの設定を編集する必要はありません。 |
他のすべての精度またはスケールの更新 | カラムおよびカラムにパブリッシュされていたデータが削除され、新しい精度またはスケールで別のカラムが作成される | パブリケーションのマッピングおよびサブスクリプションのマッピングとフィルタから、変更済みカラムへの参照を削除します。 オプション: 新しい精度またはスケールで作成されたカラムをパブリッシュまたはコンシュームするには、マッピングを編集して新しいカラムを追加します。 マッピングを更新しないと、新しいカラム内のデータはパブリケーションリポジトリにパブリッシュされず、サブスクライバはデータを受け取りません。 |