ApsaraDB RDS は、RDS インスタンスから AnalyticDB for PostgreSQL などのデータウェアハウスにデータを同期するためのゼロ ETL 機能を提供します。データパイプラインを構築またはメンテナンスする必要はありません。このサービスは無料で、データ転送と O&M コストを削減します。
サポートされるリージョン
中国 (北京)、中国 (杭州)、中国 (上海)、中国 (深圳)
より多くのリージョンへのサポートが展開されています。最新情報については、RDS コンソールをご参照ください。
概要
ビッグデータの時代において、企業は異なるシステムやプラットフォームに分散した大量の業務データを効率的に管理し、活用するために、抽出・変換・ロード (ETL) ツールを使用する必要があります。
ETL ツールは、上位の業務システムからデータを抽出し、データを変換してからデータウェアハウスにロードします。このプロセスにより、分散したデータがデータウェアハウスに統合され、さらなる計算、分析、およびビジネス上の意思決定に利用されます。
以下のセクションでは、従来の ETL プロセスに関連する課題について説明します。
システムの複雑性の増大: ETL ツールのメンテナンスは O&M の難易度を上げ、業務アプリケーション開発に集中することを妨げます。
リソースコストの増大: データソースが異なると、異なる ETL ツールが必要になる場合があり、ETL タスクを作成するために追加料金が発生します。
データ適時性の低下: 特定の ETL プロセスには、定期的な一括更新が含まれます。ほぼリアルタイムのシナリオでは、分析結果を迅速に生成できません。
これらの問題を解決するため、Alibaba Cloud ApsaraDB は、オンライン トランザクション処理 (OLTP) データベースを使用する業務システムと、オンライン分析処理 (OLAP) データベースを使用するデータウェアハウスとの間でデータ同期タスクを迅速に作成できるゼロ ETL 機能を提供します。この機能は、業務システムのデータを自動的に抽出し、変換し、クレンジングし、データウェアハウスにロードします。これにより、データ同期と管理をワンストップで完了させ、トランザクション処理とデータ分析を統合できます。これにより、データ分析に集中できます。
メリット
使いやすさ: ETL 操作のために複雑なデータパイプラインを作成およびメンテナンスする必要はありません。ソースデータと宛先インスタンスを選択するだけで、リアルタイムのデータパイプラインを自動的に作成できます。これにより、データパイプラインの構築と管理の課題が軽減され、アプリケーション開発に集中できます。
ゼロコスト: ゼロ ETL パイプラインは無料です。データパイプラインのコストを発生させることなく、データウェアハウスで入力データを分析できます。
マルチソース集約: ゼロ ETL パイプラインを使用して、複数のインスタンスから単一の AnalyticDB for PostgreSQL インスタンスにリアルタイムでデータを同期できます。これにより、データ分析のための包括的なビューを構築できます。
サポートされるリンク
RDS for PostgreSQL から AnalyticDB for PostgreSQL
課金
ゼロ ETL データ同期は無料です。
前提条件
AnalyticDB for PostgreSQL インスタンスが作成されていること。詳細については、「AnalyticDB for PostgreSQL インスタンスの作成」をご参照ください。
RDS for PostgreSQL インスタンスと AnalyticDB for PostgreSQL インスタンスが同じリージョンにあること。
データを受信するために AnalyticDB for PostgreSQL インスタンスにデータベースが作成されていること。詳細については、「AnalyticDB for PostgreSQL インスタンスのデータベースの管理」をご参照ください。
RDS for PostgreSQL インスタンスの特権アカウントが作成され、ターゲットデータベースのオーナーとして設定されていること。詳細については、「ApsaraDB RDS for PostgreSQL インスタンスのアカウントの作成」をご参照ください。
AnalyticDB for PostgreSQL インスタンスのデータベースアカウントが作成されていること。詳細については、「AnalyticDB for PostgreSQL インスタンスのデータベースアカウントの作成」をご参照ください。
説明初期アカウントまたは SUPERUSER 権限を持つアカウントも使用できます。
RDS for PostgreSQL インスタンスの
wal_levelパラメーターがlogicalに設定されていること。パラメーターの変更方法の詳細については、「ApsaraDB RDS for PostgreSQL インスタンスのパラメーターの変更」をご参照ください。RDS for PostgreSQL インスタンスで論理レプリケーションスロットのフェールオーバーが有効になっていること。この機能はデフォルトで有効になっています。この機能の有効化ステータスを確認するには、「論理レプリケーションスロットのフェールオーバー」をご参照ください。
説明この機能が有効になっていると、同期タスクは正常に実行され、論理サブスクリプションはプライマリ/セカンダリのフェールオーバーによって中断されません。
準備
サービスリンクロールの作成
Resource Access Management (RAM) コンソールの [ロール] リストに移動します。
ロールのリストで、AliyunServiceRoleForADBPG という名前のサービスリンクロールを確認します。存在しない場合は、次のステップに進んで作成します。
説明ゼロ ETL パイプラインを作成する前に、サービスリンクロールを作成する必要があります。
サービスリンクロール作成ページに移動します。[信頼できるクラウドサービス] を [AliyunServiceRoleForADBPG] に設定します。
[サービスリンクロールの作成] をクリックします。
ロールのリストに戻り、サービスリンクロールが作成されたことを確認します。
RAM ユーザーへの管理権限の付与
Resource Access Management (RAM) ユーザーは、ゼロ ETL パイプラインを作成および管理するために、次の 2 つの権限が必要です。
権限 1: 宛先 RDS インスタンスに対する RAM ユーザー管理権限の付与
ゼロ ETL パイプラインを作成および管理するには、RAM ユーザーは、宛先インスタンスに対して AliyunGPDBFullAccess 権限 (AnalyticDB for PostgreSQL の完全な管理権限) を持っている必要があります。詳細については、「RAM ユーザーへの権限の付与」をご参照ください。
権限 2: RAM ユーザーへのゼロ ETL 管理権限の付与
ゼロ ETL パイプラインを作成および管理するには、RAM ユーザーはソースインスタンス (RDS for PostgreSQL) と宛先インスタンス (AnalyticDB for PostgreSQL) の間にパイプラインを作成する権限が必要です。カスタムポリシーを作成して、すべてのインスタンスまたは特定のインスタンスのみのパイプライン作成を承認できます。その後、カスタムポリシーを RAM ユーザーに付与します。カスタムポリシーの作成と権限の付与の詳細については、「カスタムポリシーの作成」をご参照ください。
以下は、カスタムポリシーのサンプルスクリプトです。
すべての RDS for PostgreSQL および AnalyticDB for PostgreSQL インスタンスに対する権限の付与
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:gpdb:*:*:*",
"acs:rds:*:*:*"
]
},
{
"Effect": "Allow",
"Action": [
"dts:DescribeRegions",
"dts:DescribeConfigRelations",
"dts:DescribeSrcLinkConfig",
"dts:DescribeDestLinkConfig",
"dts:DescribeLinkConfig",
"dts:DescribeConciseJobStatics",
"dts:ListUserAuthorizationLogs",
"dts:CreateUserAuthorization"
],
"Resource": [
"acs:dts:*:*:*"
]
}
]
}特定の RDS for PostgreSQL および AnalyticDB for PostgreSQL インスタンスに対する権限の付与
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:gpdb:*:*:dbcluster/gp-bp13e375cd8x2****",
"acs:rds:*:*:dbinstance/pgm-2zeyjzi91g53****"
]
},
{
"Effect": "Allow",
"Action": [
"dts:DescribeRegions",
"dts:DescribeConfigRelations",
"dts:DescribeSrcLinkConfig",
"dts:DescribeDestLinkConfig",
"dts:DescribeLinkConfig",
"dts:DescribeConciseJobStatics",
"dts:ListUserAuthorizationLogs",
"dts:CreateUserAuthorization"
],
"Resource": "acs:dts:*:*:*"
}
]
}手順
RDS コンソールにログインします。左側のナビゲーションウィンドウで、[データ統合] をクリックします。
[ゼロ ETL] タブで、[ゼロ ETL タスクの作成] をクリックします。
[ゼロ ETL タスクの作成] ページで、ソースデータベースとターゲットデータベースを構成します。
ソースデータベースを構成します。
ソースデータベース
説明
タスク名
ゼロ ETL タスクの名前。
データベースタイプ
RDS for PostgreSQL を選択します。
接続タイプ
[クラウドインスタンス] のみがサポートされています。
インスタンスリージョン
ソースインスタンスが存在するリージョン。
インスタンス ID
RDS for PostgreSQL インスタンスの ID。
データベース名
RDS for PostgreSQL インスタンス内のデータベースの名前。
データベースアカウント
RDS for PostgreSQL インスタンスのデータベースアカウント。
データベースパスワード
データベースアカウントのパスワード。
接続方法
RDS for PostgreSQL インスタンスへの接続に使用されるメソッド。
ターゲットデータベースを構成します。
ターゲットデータベース
説明
データベースタイプ
現在、ターゲットデータベースとしてサポートされているのは [AnalyticDB For PostgreSQL] のみです。
接続タイプ
[クラウドインスタンス] のみがサポートされています。
インスタンスリージョン
宛先インスタンスが存在するリージョン。
インスタンス ID
宛先インスタンスの ID。
データベース名
データを受信するために使用される宛先インスタンス内のデータベースの名前。
データベースアカウント
宛先インスタンスのデータベースアカウント。
データベースパスワード
データベースアカウントのパスワード。
パラメーターを構成したら、[接続をテストして次へ] をクリックします。表示されるページで、次のパラメーターを構成します。
構成項目
説明
同期する DDL および DML 操作
同期する DML 操作 (insert、update、delete) と DDL 操作 (create、alter、drop、rename、truncate) を選択します。デフォルトでは、すべての操作が選択されています。
ソースオブジェクトと選択されたオブジェクト
データベース内のソースオブジェクトと同期するオブジェクト。
高度な構成 (オプション)
ソースまたはターゲットデータベースに到達できない場合の再試行間隔、およびソースまたはターゲットデータベースで発生するその他の問題に対する再試行間隔を設定します。
パラメーターを構成したら、[ゼロ ETL O&M フリーの説明] を選択し、[次へ: テーブルとフィールドのマッピングを構成] をクリックします。次の情報を構成します。
テーブルとフィールドの構成
説明
データベース名
既存のデータベースを選択します。
テーブル名
既存のデータテーブルを選択します。
プライマリキー列
選択したデータテーブルのプライマリキー列。
分散キー
選択したデータテーブルの分散キー列。
タイプ
データテーブルのタイプ。有効な値: パーティションテーブルとレプリケートされたテーブル。
定義ステータス
テーブルとフィールドの設定を構成すると、ステータスが [未定義] から [定義済み] に変わります。
すべてのパラメーターを構成したら、[次へ: タスクを保存して事前チェック] をクリックします。
事前チェックが成功したら、[開始] をクリックしてゼロ ETL タスクを開始します。
[ゼロ ETL] ページで、[ソース] タブをクリックして、名前、ソース/宛先、実行ステータスなどのゼロ ETL タスクに関する情報を表示できます。