DataHub のデータ同期
DataHub は、データ同期とも呼ばれるデータソースおよびシンク機能を提供します。この機能を使用して、DataHub Topic から他の Alibaba Cloud サービスにデータを リアルタイムまたはほぼリアルタイム で同期できます。このプロセスにより、異なる Alibaba Cloud サービス間でデータをフローさせることができます。DataHub は、MaxCompute (旧 ODPS)、AnalyticDB for MySQL (ADS)、ApsaraDB RDS、Tablestore、Object Storage Service (OSS)、Elasticsearch、および Function Compute へのデータ同期をサポートしています。データを一度 DataHub に書き込み、データ同期を設定すると、サポートされているクラウドサービスのいずれかでデータを使用して、完全なクローズドループのデータソリューションを作成できます。
サポートされている Alibaba Cloud サービス
注:
MaxCompute の場合、データは 5 分ごと、またはバッチが 64 MB に達したときに同期されます。
Tablestore、OSS、Elasticsearch、Function Compute、または Hologres の場合、データは 20 秒ごと、またはバッチが 4 MB に達したときに同期されます。
MySQL、ApsaraDB RDS、または AnalyticDB for MySQL 3.0 の場合、データは 20 秒ごと、またはバッチが 512 KB に達したときに同期されます。
宛先サービス | サポートされている Topic タイプ | 適時性 | VPC サポート |
MaxCompute | TUPLE / BLOB | ほぼリアルタイム、5 分の待機時間 | いいえ |
AnalyticDB for MySQL | TUPLE | リアルタイム | いいえ |
ApsaraDB RDS | TUPLE | リアルタイム | はい |
Tablestore | TUPLE | リアルタイム | いいえ |
Object Storage Service (OSS) | TUPLE / BLOB | リアルタイム | いいえ |
ElasticSearch | TUPLE | リアルタイム | はい |
Function Compute | TUPLE / BLOB | リアルタイム | いいえ |
Hologres | TUPLE | リアルタイム | いいえ |
使用上の注意
データを同期するときは、同じリージョンにある Alibaba Cloud サービスを使用してください。これにより、ネットワーク接続の問題を回避し、リージョン間のネットワーク遅延を削減できます。
Alibaba Cloud のネットワーク隔離のため、構成中に宛先サービスの内部エンドポイント (クラシックネットワーク) を使用する必要があります。パブリックインターネット経由の同期はサポートされていません。
DataHub のデータ同期は、at-least-once セマンティクスのみをサポートします。ネットワークエラーなどのまれなケースでは、宛先サービスで少量のデータが重複する可能性があります。宛先でデータ重複除去を処理する必要があります。
同期タスクを作成すると、DataHub はタスクに SubscriptionId を自動的にアタッチします。この ID は、同期ポイントではなく、DataHub の読み取りポイントを記録します。この SubscriptionId は変更しないでください。
DataHub Topic のオーナーまたは作成者のみが、コネクタ (同期タスク) を作成する権限を持っています。
IP ホワイトリスト
IP ホワイトリストは変更される場合があります。このドキュメントの IP アドレスをホワイトリストに追加しても、IP アドレスがホワイトリストにないというエラーが表示される場合は、チケットを送信して最新の IP ホワイトリストを入手してください。
リージョン | クラシックネットワークホワイトリスト | VPC ホワイトリスト |
中国 (杭州) | 10.130.203.0/24 10.130.208.0/24 10.130.210.0/24 10.130.213.0/24 10.186.213.0/24 10.32.103.0/24 10.32.104.0/24 10.32.177.0/24 10.32.94.0/24 10.32.95.0/24 10.32.96.0/24 10.32.97.0/24 10.32.98.0/24 10.32.99.0/24 10.5.35.0/24 11.115.89.0/24 11.194.216.0/24 11.194.217.0/24 11.194.247.0/24 11.194.248.0/24 11.197.14.0/24 11.223.199.0/24 | 100.104.191.0/24 |
中国 (上海) | 11.199.218.0/24 11.199.219.0/24 26.76.154.0/24 26.76.155.0/24 | 100.104.136.0/24 |
中国 (北京) | 11.204.155.0/24 11.204.158.0/24 11.204.161.0/24 11.204.162.0/24 11.218.245.0/24 11.220.203.0/24 11.220.204.0/24 11.220.216.0/24 11.220.217.0/24 11.220.237.0/24 11.220.238.0/24 11.220.240.0/24 11.220.242.0/24 11.223.107.0/24 | 100.104.33.0/24 |
中国 (深セン) | 10.58.213.0/24 10.58.219.0/24 11.114.243.0/24 26.41.109.0/24 26.41.119.0/24 26.74.38.0/24 | 100.104.55.0/24 |
シンガポール | 11.112.208.0/24 11.195.209.0/24 11.197.63.0/24 26.53.11.0/24 26.59.42.0/24 26.77.111.0/24 26.79.102.0/24 26.79.92.0/24 | 100.104.163.0/24 |
中国北部 2 Ali Gov 1 | 11.199.246.0/24 11.199.247.0/24 | 100.104.254.0/24 |
中国 (張家口) | 10.2.165.0/24 10.93.87.0/24 11.113.55.0/24 11.114.126.0/24 11.196.52.0/24 11.196.53.0/24 11.207.155.0/24 11.57.215.0/24 | 100.104.195.0/24 |
マレーシア (クアラルンプール) | 11.204.39.0/24 11.204.40.0/24 11.204.41.0/24 11.195.105.0/24 11.194.226.0/24 11.194.44.0/24 11.48.249.0/24 11.48.250.0/24 | 100.104.13.0/24 |
中国 (香港) | 11.119.176.0/24 26.49.143.0/24 26.49.144.0/24 26.53.105.0/24 26.53.112.0/24 26.55.135.0/24 26.73.76.0/24 | 100.104.166.0/24 |
中国東部 2 金融 | 10.0.4.0/24 10.0.5.0/24 10.130.163.0/24 11.197.111.0/24 11.197.120.0/24 | 100.104.220.0/24 |
ドイツ (フランクフルト) | 10.250.235.0/24 10.254.223.0/24 10.254.224.0/24 10.71.0.0/24 11.195.132.0/24 26.78.19.0/24 | 100.104.100.0/24 |
米国 (シリコンバレー) | 11.199.218.0/24 11.199.219.0/24 26.76.154.0/24 26.76.155.0/24 | 100.104.235.0/24 |
サービスホワイトリスト
MaxCompute では、プロジェクトレベルの IP ホワイトリストを設定できます。IP ホワイトリストを設定すると、DataHub は MaxCompute にデータを同期できません。この問題を解決するために、MaxCompute はサービスホワイトリスト機能を提供します。DataHub が MaxCompute にデータを同期できるようにするには、DataHub サービス名を MaxCompute サービスホワイトリストに追加する必要があります。
DataHub のサービス名は DataHub です。ソフトウェア開発キット (SDK) または odpscmd を使用してサービスホワイトリストを設定できます。
SDK を使用してホワイトリストを設定するには、次の例をご参照ください:
public static void setServiceName() throws OdpsException {
String endpoint = "";
String project = "";
String accessId = "";
String accessKey = "";
Account account = new AliyunAccount(accessId, accessKey);
Odps odps = new Odps(account);
odps.setEndpoint(endpoint);
odps.setDefaultProject(project);
Map<String, String> prop = new HashMap<>();
// DataHub サービス名を MaxCompute サービスホワイトリストに追加します。複数のサービスを追加するには、カンマで区切ります。このプロパティを設定するたびに、以前の設定が上書きされます。
prop.put("odps.security.ip.whitelist.services", "DataHub");
Group group = new Groups(odps).get("groupName");
group.updateProject(project, null, null, prop);
// 現在の MaxCompute サービスホワイトリストが期待どおりに設定されているかどうかを確認します。
prop = odps.projects().get(project).getAllProperties();
System.out.println("current service list: " + prop.get("odps.security.ip.whitelist.services"));
}odpscmd を使用してホワイトリストを設定するには、次の例をご参照ください:
odpscmd を起動した後、次のコマンドを実行して構成を適用します。
setproject odps.security.ip.whitelist.services=DataHub;構成が完了したら、構成が成功したことを確認できます。
setproject;
## 出力に odps.security.ip.whitelist.services=DataHub 設定項目が含まれている場合、設定は成功です。