Cloud Integration Hub > トピック > リレーショナルデータベースのトピック構造
  

リレーショナルデータベースのトピック構造

リレーショナルデータベースでトピックを作成するとき、パブリケーションによるデータのパブリッシュ先となりサブスクリプションによるデータのコンシューム元となるパブリケーションリポジトリのデータ構造を定義します。トピック構造は複数のテーブルで構成することができます。
Cloud Integration Hubは、トピックにパブリッシュされるデータを保持するパブリケーションリポジトリにテーブルを生成します。Cloud Integration Hubは、トピックに関連付けられたパブリケーションおよびサブスクリプションのデータ構造を使用します。
例えば、販売データを表すSalesトピックを作成します。組織内のすべての店舗のアプリケーションは、販売データをSalesトピックにパブリッシュします。経理アプリケーションはSalesトピックにサブスクライブして、すべての店舗からパブリッシュされた販売データをコンシュームします。フィルタが適用されている場合は、特定の店舗からパブリッシュされたデータをコンシュームできます。
Cloud Integration Hubでパブリッシュおよびコンシュームされるデータのパブリケーションおよびサブスクリプションを定義する前に、Cloud Integration HubのパブリケーションリポジトリでCloud Integration Hubにパブリッシュされるデータを保持する標準の構造を定義する必要があります。標準の構造は、トピックを定義するときに定義します。異なるソースのデータセットを表す複数のトピックを定義できます。

リレーショナルデータベースでのトピックテーブルの作成

次の方法で、リレーショナルデータベースにトピックテーブルを作成できます。
1つのトピックにテーブルを作成する方法は複数あります。例えば、フラットファイルから2つのテーブルを作成する、メタデータファイルから3つのテーブルを作成する、新しいテーブルを作成する、です。

メタデータファイルを使用したトピックテーブルの作成リレーショナルデータベースでのメタデータファイルを使用したトピックテーブルの作成▼前の分節と統合▼

Cloud Integration Hubにメタデータファイルをロードして、リレーショナルデータベースでファイル構造に基づくトピックテーブルを作成できます。
メタデータファイルを使用してトピックテーブルを作成するときは、ファイルでテーブル属性を定義してからCloud Integration Hubにロードできます。例えば、カラムデータ型と精度を定義したり、暗号化されていないフィルタアクセラレータとしてカラムを定義したりすることができます。
トピックテーブルを作成するときは、JSON、XML、XLS、およびXLSXメタデータファイルを使用できます。
メタデータファイルには次のフィールドが含まれている必要があります。その他のフィールドが含まれていてはいけません。
columnName
必須。テーブルカラムの名前。名前は、英文字またはアンダースコアで開始する必要があり、英数字およびアンダースコアのみを含めることができます。
filterAccelerator
オプション。サブスクリプションのクエリでカラムが使用されること、およびCloud Integration Hubによるパフォーマンス関連の処理が必要であることを示します。このインジケータは、バインドされていないサブスクリプションで使用予定のトピックとともに使用してください。デフォルト: false。
フィルタアクセラレータを使用する場合は、次のガイドラインを検討してください。
データ型
オプション。フィールドのデータ型。デフォルト: string。
ファイルには、次のデータ型のフィールドを含めることができます。
精度
オプション。精度をサポートするデータ型に適用されます。デフォルトのprecisionの値は、フィールドのデータ型によって異なります。
スケール
オプション。データスケーリングをサポートするデータ型に適用されます。デフォルトのscaleの値は、フィールドのデータ型によって異なります。
暗号化
オプション。ホストされたパブリケーションリポジトリに適用されます。
必須
オプション。リレーショナルトピックテーブルに適用されます。このオプションが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

リレーショナルデータベースでのトピック構造の更新

リレーショナルデータベースで関連付けられたパブリケーションまたはサブスクリプションによってトピックの構造を編集すると、関連付けられたパブリケーションおよびサブスクリプションに影響することがあります。トピック構造の変更はパブリケーションリポジトリ内のデータにも影響する可能性があり、場合によってはデータが失われます。
更新内容によっては、関連付けられたパブリケーションおよびサブスクリプションを新しいトピック構造に合わせて編集することが必要になる場合があります。トピックの更新では、[処理中]または[遅延]のステータスにあるパブリケーションイベントまたはサブスクリプションイベントがあってはなりません。[処理中]のステータスにあるパブリケーションイベントまたはサブスクリプションイベントを[イベント]ページで検索し、それらを更新する前にステータスを[破棄済み]に変更します。詳細については、処理中ステータスにあるすべてのイベントの破棄を参照してください。
次の表に、トピック構造の更新がパブリケーションリポジトリ内のデータに及ぼす影響を示します。また、更新の結果、関連付けられたパブリケーションおよびサブスクリプションで必要となるオプションまたは必須の変更を示します。
トピック構造の更新
パブリケーションリポジトリのデータに対する影響 1
関連付けられたパブリケーションおよびサブスクリプションに対するオプション/必須の変更
テーブルの追加
テーブルが追加される
オプション: 追加のテーブルをパブリッシュしてコンシュームするには、マッピングを編集してテーブルを追加します。
マッピングを更新しないと、テーブル内のデータはパブリケーションリポジトリにパブリッシュされず、サブスクリプションはデータを受け取りません。
テーブルの削除
テーブル、およびテーブルにパブリッシュされていたデータが削除される
パブリケーションのマッピングおよびサブスクリプションのマッピングとフィルタから、テーブルへの参照を削除します。
カラムの追加
カラムが追加される
オプション: 追加のカラムをパブリッシュしてコンシュームするには、マッピングを編集してカラムを追加します。
マッピングを更新しないと、カラム内のデータはパブリケーションリポジトリにパブリッシュされず、サブスクライバはデータを受け取りません。
カラムの削除
カラムおよびカラムにパブリッシュされていたデータが削除される
パブリケーションのマッピングおよびサブスクリプションのマッピングとフィルタから、カラムへの参照を削除します。
カラム名の変更
カラムおよびカラムにパブリッシュされていたデータが削除され、新しい名前で別のカラムが作成される
パブリケーションのマッピングおよびサブスクリプションのマッピングとフィルタから、変更済みカラムへの参照を削除します。
オプション: 新しい名前で作成されたカラムをパブリッシュまたはコンシュームするには、マッピングを編集して新しいカラムを追加します。
マッピングを更新しないと、新しいカラム内のデータはパブリケーションリポジトリにパブリッシュされず、サブスクライバはデータを受け取りません。
カラムデータ型の変更
カラムおよびカラムにパブリッシュされていたデータが削除され、新しいデータ型で別のカラムが作成される
パブリケーションのマッピングおよびサブスクリプションのマッピングとフィルタから、変更済みカラムへの参照を削除します。
オプション: 新しいデータ型で作成されたカラムをパブリッシュまたはコンシュームするには、マッピングを編集して新しいカラムを追加します。
マッピングを更新しないと、新しいカラム内のデータはパブリケーションリポジトリにパブリッシュされず、サブスクライバはデータを受け取りません。
カラムの精度向上(スケールは変更なし)
カラムが更新される
関連付けられたすべてのパブリケーションおよびサブスクリプションに対して、パブリケーションまたはサブスクリプションページを開きます。パブリケーションまたはサブスクリプションの設定を編集する必要はありません。
カラムの精度向上、および精度の向上分と同じか少ない値でスケールを向上
カラムが更新される
関連付けられたすべてのパブリケーションおよびサブスクリプションに対して、パブリケーションまたはサブスクリプションページを開きます。パブリケーションまたはサブスクリプションの設定を編集する必要はありません。
他のすべての精度またはスケールの更新
カラムおよびカラムにパブリッシュされていたデータが削除され、新しい精度またはスケールで別のカラムが作成される
パブリケーションのマッピングおよびサブスクリプションのマッピングとフィルタから、変更済みカラムへの参照を削除します。
オプション: 新しい精度またはスケールで作成されたカラムをパブリッシュまたはコンシュームするには、マッピングを編集して新しいカラムを追加します。
マッピングを更新しないと、新しいカラム内のデータはパブリケーションリポジトリにパブリッシュされず、サブスクライバはデータを受け取りません。
1 パブリケーションリポジトリ内のカラムの削除には、テーブルの行数によっては時間がかかることがあります。