AnalyticDB Pipeline Service (APS) を使用すると、指定した時点以降に Simple Log Service (SLS) で生成されたデータを AnalyticDB for MySQL クラスターにリアルタイムで同期できます。これにより、ログデータのリアルタイム分析が可能になります。
前提条件
AnalyticDB for MySQL クラスター、SLS プロジェクト、および Logstore が同じリージョンにあること。詳細については、「クラスターの作成」および「プロジェクトと Logstore の作成」をご参照ください。
AnalyticDB for MySQL クラスター用のデータベースアカウントが作成されていること。
Alibaba Cloud アカウントを使用する場合は、「特権アカウントの作成」のみが必要です。
Resource Access Management (RAM) ユーザーを使用する場合は、「特権アカウントと標準アカウントの作成」および「標準アカウントと RAM ユーザーの関連付け」を行う必要があります。
AnalyticDB for MySQL クラスターにターゲットデータベースとテーブルが作成されていること。
Enterprise Edition、Basic Edition、または Data Lakehouse Edition の AnalyticDB for MySQL クラスターにジョブ固有のリソースグループが作成されていること。
注意事項
AnalyticDB for MySQL クラスター内の単一のテーブルは、1 つの Logstore からのみデータを同期できます。複数の Logstore からデータを同期するには、複数のテーブルを作成する必要があります。
課金
エラスティックリソースは従量課金制で課金されます。料金は、データリンクで使用される AnalyticDB 計算ユニット (ACU) の数に基づいて計算されます。課金の詳細については、「料金」をご参照ください。
操作手順
同期タスクは、SLS コンソールまたは AnalyticDB for MySQL コンソールで作成できます。違いは次のとおりです:
SLS コンソールでの同期タスクの作成:この方法では、同じ Alibaba Cloud アカウントからの SLS データのみのインポートをサポートします。データリンクを作成するだけで、指定した
SLS ProjectおよびSLS logstoreパラメーターに基づいて、システムが自動的に SLS データソースを作成します。AnalyticDB for MySQL コンソールでの同期タスクの作成:この方法では、他の Alibaba Cloud アカウントからの SLS データのインポートをサポートします。SLS データソースを作成してから、そのデータソースに基づいてデータリンクを作成する必要があります。
SLS コンソールでの同期タスクの作成
ステップ 1:データソースと同期リンクの作成
Simple Log Service コンソールにログインします。
プロジェクトリストで、ターゲットプロジェクトをクリックします。左側のナビゲーションウィンドウで、
をクリックして [ログストレージ] タブに移動し、ターゲット Logstore の下のタブを展開します。をクリックします。次に、[AnalyticDB] の横にある [+] アイコンをクリックします。
表示される [出荷ノート] ダイアログボックスで、[AnalyticDB For MySQL コンソールで作成] を選択します。

[AnalyticDB For MySQL ログ同期] ページで、[ソースとターゲットの設定]、[ターゲットデータベースとテーブルの設定]、および [同期設定] タブのパラメーターを設定します。
[ソースとターゲットの設定] セクションのパラメーターを次の表に示します。
パラメーター
メトリックの説明
ジョブ名
データリンクの名前。システムはデータソースのタイプと現在時刻に基づいて名前を自動的に生成します。必要に応じて名前を変更できます。
Simple Log Service プロジェクト
SLS プロジェクト。
Simple Log Service Logstore
SLS Logstore。
移行先 AnalyticDB For MySQL クラスター
AnalyticDB for MySQL クラスターを選択します。
AnalyticDB For MySQL アカウント
AnalyticDB for MySQL クラスターのデータベースアカウント。
AnalyticDB For MySQL パスワード
AnalyticDB for MySQL クラスターのデータベースアカウントのパスワード。
[ターゲットデータベースとテーブルの設定] セクションのパラメーターを次の表に示します。
パラメーター
説明
[データベース名]
AnalyticDB for MySQL クラスター内のデータベースの名前。
[テーブル名]
AnalyticDB for MySQL クラスター内のデータテーブルの名前。
[ソースデータプレビュー]
クリックして最新の LogStore を 10 件表示する をクリックして、ソース SLS から最新 10 件のデータレコードを表示します。
[スキーマフィールドマッピング]
AnalyticDB for MySQL は、クラスターテーブルのフィールドに対して [ターゲットテーブルフィールド] と [ソースフィールド] を自動的に入力します。[ターゲットテーブルフィールド] と [ソースフィールド] の間のマッピングが正しくない場合は、手動で修正します。
たとえば、AnalyticDB for MySQL クラスターのデータテーブルのフィールド名が name で、SLS のソースデータフィールド名が user_name の場合、システムは [ソースフィールド] と [ターゲットテーブルフィールド] に name を自動的に入力します。この場合、[ソースフィールド] を user_name に手動で変更する必要があります。
[同期設定] セクションのパラメーターを次の表に示します。
パラメーター
説明
開始オフセット
同期タスクが開始されると、指定された時点から SLS データを消費します。
たとえば、[開始オフセット] を [2024-04-09 13:10] に設定すると、システムは 2024 年 4 月 9 日 13:10 以降の最初のレコードからデータの消費を開始します。
ダーティデータ処理モード
データ同期中に、ターゲットテーブルのフィールドのデータ型がソース SLS の実際のデータのデータ型と一致しない場合、同期は失敗します。たとえば、ソースデータが
abcで、ターゲットフィールドの型がintの場合、データを変換できないため同期エラーが発生します。ダーティデータ処理モードには、次の値が有効です:
[同期を停止] (デフォルト):データ同期が停止します。ターゲットテーブルのフィールドタイプを変更するか、ダーティデータ処理モードを変更してから、同期タスクを再開する必要があります。
[NULL として処理]:ダーティデータは NULL 値としてターゲットテーブルに書き込まれ、元のダーティデータは破棄されます。
たとえば、SLS データのある行に 3 つのフィールド (col1、col2、col3) があるとします。col2 フィールドがダーティデータの場合、col2 フィールドのデータは NULL 値に変換されてテーブルに書き込まれます。col1 および col3 フィールドのデータは正常に書き込まれます。
UNIX タイムスタンプを日時に変換
ソース SLS フィールドが UNIX タイムスタンプ (例:1710604800) で、ターゲットフィールドの型が DATETIME または TIMESTAMP の場合、変換のためにこの機能を有効にする必要があります。この機能を有効にした後、SLS タイムスタンプデータの精度に基づいて 秒精度のタイムスタンプ、ミリ秒精度のタイムスタンプ、または マイクロ秒精度のタイムスタンプ を選択できます。
ジョブ リソース グループ
増分同期タスクを実行するためのジョブ固有のリソースグループを選択します。
重要このパラメーターは、AnalyticDB for MySQL クラスターが Enterprise Edition、Basic Edition、または Data Lakehouse Edition の場合にのみ必要です。
[増分同期用の ACU]
増分同期タスクを実行するために使用される初期 ACU 数。値は 1 ACU に固定されています。値の範囲は 1 からジョブ固有のリソースグループの最大リソースまでです。
同期リンクが作成された後、AnalyticDB for MySQL はビジネスのワークロードに基づいて ACU の数を自動的にスケーリングします。ACU の数は最大 64 までスケールアップ、または 1 までスケールダウンできます。
重要このパラメーターは、AnalyticDB for MySQL クラスターが Enterprise Edition、Basic Edition、または Data Lakehouse Edition の場合にのみ必要です。
パラメーターを設定した後、[送信] をクリックします。
システムは AnalyticDB for MySQL に SLS データソースとデータリンクを自動的に作成し、AnalyticDB for MySQL コンソールの Simple Log Service / Kafka データ同期 ページにリダイレクトします。
ステップ 2:同期タスクの開始
ターゲットデータリンクの [操作] 列で、[開始] をクリックします。
タスクが開始された後、右上隅の [クエリ] をクリックします。ステータスが [実行中] に変わると、同期タスクが開始されています。
ステップ 3:同期タスクの管理
[操作] 列で次の操作を実行できます:
操作 | 説明 |
開始 | データ同期ジョブを開始します。 |
[詳細の表示] | ソースとターゲットの構成、実行ログ、実行モニタリングなど、データ同期ジョブの詳細を表示します。 |
[編集] | ジョブの開始オフセット、フィールドマッピング、その他の設定を編集します。 |
一時停止 | データ同期ジョブを一時停止します。[開始] をクリックして同期を再開できます。同期は一時停止したオフセットから再開されます。 |
削除 | データ同期ジョブを削除します。この操作は元に戻せません。慎重に実行してください。 |
AnalyticDB for MySQL コンソールでの同期タスクの作成
ステップ 1:(オプション) RAM 権限付与の設定
現在の Alibaba Cloud アカウントからのみ SLS データを同期する場合は、このステップをスキップしてデータソースを作成できます。詳細については、「ステップ 2:データソースの作成」をご参照ください。
別の Alibaba Cloud アカウントから AnalyticDB for MySQL に SLS データを同期する場合、ソースアカウントで RAM ロールを作成し、その RAM ロールに詳細な権限を付与し、RAM ロールの信頼ポリシーを変更する必要があります。
RAM ロールを作成します。詳細については、「信頼できる Alibaba Cloud アカウントの RAM ロールの作成」をご参照ください。
説明[プリンシパル名] パラメーターを設定する際、[他のアカウント] を選択し、AnalyticDB for MySQL クラスターが属する Alibaba Cloud アカウントの ID を入力します。アカウントセンターにログインし、[セキュリティ設定] ページで [アカウント ID] を確認できます。
詳細な権限付与を使用して、AliyunAnalyticDBAccessingLogRolePolicy 権限を RAM ロールに付与します。
RAM ロールの信頼ポリシーを変更して、指定された Alibaba Cloud アカウントに属する AnalyticDB for MySQL クラスターがこの RAM ロールを引き受けることを許可します。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<Alibaba Cloud account ID>:root" ], "Service": [ "<Alibaba Cloud account ID>@ads.aliyuncs.com" ] } } ], "Version": "1" }説明Alibaba Cloud アカウント ID は、ステップ 1 で指定した AnalyticDB for MySQL クラスターが属する Alibaba Cloud アカウントの ID です。ポリシーを設定する際は、山括弧 (<>) を含めないでください。
ステップ 2:データソースの作成
SLS データソースを既に追加している場合は、このステップをスキップしてデータリンクを作成できます。詳細については、「ステップ 3:データリンクの作成」をご参照ください。
AnalyticDB for MySQL コンソールにログインします。コンソールの左上隅でリージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。管理したいクラスターを見つけ、クラスター ID をクリックします。
左側のナビゲーションウィンドウで、を選択します。
右上隅で、データソースの新規作成 をクリックします。
データソースの新規作成 ページで、パラメーターを設定します。次の表にパラメーターを示します。
パラメーター
説明
[データソースタイプ]
[SLS] を選択します。
データソース名
システムはデータソースのタイプと現在時刻に基づいて名前を自動的に生成します。必要に応じて名前を変更できます。
[データソースの説明]
アプリケーションシナリオやビジネス上の制約など、データソースの説明。
クラウドプロバイダー
[Alibaba Cloud インスタンス] のみがサポートされています。
[Simple Log Service プロジェクトのリージョン]
SLS プロジェクトが存在するリージョン。
説明AnalyticDB for MySQL クラスターが存在するリージョンのみを選択できます。
[Alibaba Cloud アカウント間]
AnalyticDB for MySQL クラスターは、同じ Alibaba Cloud アカウントまたは別の Alibaba Cloud アカウント (クロスアカウント) から SLS データを同期できます。
[いいえ]:現在の Alibaba Cloud アカウントから AnalyticDB for MySQL クラスターに SLS データを同期します。
[はい]:別の Alibaba Cloud アカウントから AnalyticDB for MySQL クラスターに SLS データを同期します。[はい] を選択した場合は、RAM 権限付与を設定し、[Alibaba Cloud アカウント] と [RAM ロール] を入力する必要があります。詳細については、「RAM 権限付与の設定」をご参照ください。
説明[Alibaba Cloud アカウント]:SLS プロジェクトが属する Alibaba Cloud アカウントの ID。
[RAM ロール]:SLS プロジェクトが属する Alibaba Cloud アカウントに属する RAM ロール。これは、「RAM 権限付与の設定」のステップ 1 で作成した RAM ロールです。
[Simple Log Service プロジェクト]
ソース SLS プロジェクト。
[Simple Log Service Logstore]
ソース SLS Logstore。
パラメーターを設定した後、[作成] をクリックします。
ステップ 3:同期リンクの作成
左側のナビゲーションウィンドウで、を選択します。
右上隅で、同期リンクの新規作成 をクリックします。
同期リンクの新規作成 ページで、[ソースとターゲットの設定]、[ターゲットデータベースとテーブルの設定]、および [同期設定] タブのパラメーターを設定します。
次の表では、[送信元と送信先の設定] セクションのパラメーターについて説明します。
パラメーター
説明
[ジョブ名]
データリンクの名前。システムはデータソースのタイプと現在時刻に基づいて名前を自動的に生成します。必要に応じて名前を変更できます。
データソース
既存の SLS データソースを選択するか、データソースを作成します。
宛先タイプ
Enterprise Edition、Basic Edition、および Data Lakehouse Edition クラスターの場合、数倉-ADB倉ストレージ を選択します。
このパラメーターは、Data Warehouse Edition クラスターには必要ありません。
[AnalyticDB For MySQL アカウント]
AnalyticDB for MySQL クラスターのデータベースアカウント。
AnalyticDB For MySQL パスワード
AnalyticDB for MySQL クラスターのデータベースアカウントのパスワード。
[ターゲットデータベースとテーブルの設定] セクションのパラメーターを次の表に示します。
パラメーター
説明
[データベース名]
AnalyticDB for MySQL クラスター内のデータベースの名前。
[テーブル名]
AnalyticDB for MySQL クラスター内のデータテーブルの名前。
[ソースデータプレビュー]
クリックして最新の LogStore を 10 件表示する をクリックして、ソース SLS から最新 10 件のデータレコードを表示します。
[スキーマフィールドマッピング]
AnalyticDB for MySQL は、クラスターテーブルのフィールドに対して [ターゲットテーブルフィールド] と [ソースフィールド] を自動的に入力します。[ターゲットテーブルフィールド] と [ソースフィールド] の間のマッピングが正しくない場合は、手動で修正します。
たとえば、AnalyticDB for MySQL クラスターのデータテーブルのフィールド名が name で、SLS のソースデータフィールド名が user_name の場合、システムは [ソースフィールド] と [ターゲットテーブルフィールド] に name を自動的に入力します。この場合、[ソースフィールド] を user_name に手動で変更する必要があります。
[同期設定] セクションのパラメーターを次の表に示します。
パラメーター
説明
開始オフセット
同期タスクが開始されると、指定された時点から SLS データを消費します。
たとえば、[開始オフセット] を [2024-04-09 13:10] に設定すると、システムは 2024 年 4 月 9 日 13:10 以降の最初のレコードからデータの消費を開始します。
[ダーティデータ処理モード]
データ同期中に、ターゲットテーブルのフィールドのデータ型がソース SLS の実際のデータのデータ型と一致しない場合、同期は失敗します。たとえば、ソースデータが
abcで、ターゲットフィールドの型がintの場合、データを変換できないため同期エラーが発生します。ダーティデータ処理モードには、次の値が有効です:
[同期を停止] (デフォルト):データ同期が停止します。ターゲットテーブルのフィールドタイプを変更するか、ダーティデータ処理モードを変更してから、同期タスクを再開する必要があります。
[NULL として処理]:ダーティデータは NULL 値としてターゲットテーブルに書き込まれ、元のダーティデータは破棄されます。
たとえば、SLS データのある行に 3 つのフィールド (col1、col2、col3) があるとします。col2 フィールドがダーティデータの場合、col2 フィールドのデータは NULL 値に変換されてテーブルに書き込まれます。col1 および col3 フィールドのデータは正常に書き込まれます。
[UNIX タイムスタンプを Datetime に変換]
ソース SLS フィールドが UNIX タイムスタンプ (例:1710604800) で、ターゲットフィールドの型が DATETIME または TIMESTAMP の場合、変換のためにこの機能を有効にする必要があります。この機能を有効にした後、SLS タイムスタンプデータの精度に基づいて 秒精度のタイムスタンプ、ミリ秒精度のタイムスタンプ、または マイクロ秒精度のタイムスタンプ を選択できます。
パラメーターを設定した後、[送信] をクリックします。
ステップ 4:データ同期タスクの開始
データ同期ページで、作成した同期タスクを見つけ、[操作] 列の [開始] をクリックします。
ステータスが [実行中] に変わると、同期タスクが開始されています。
ステップ 5:データソースの管理
データ同期ページで、[操作] 列で次の操作を実行できます。
操作 | 説明 |
開始 | データ同期ジョブを開始します。 |
詳細 | ソースとターゲットの構成、実行ログ、実行モニタリングなど、データ同期ジョブの詳細を表示します。 |
[編集] | ジョブの開始オフセット、フィールドマッピング、その他の設定を編集します。 |
一時停止 | データ同期ジョブを一時停止します。[開始] をクリックして同期を再開できます。同期は一時停止したオフセットから再開されます。 |
削除 | データ同期ジョブを削除します。この操作は元に戻せません。慎重に実行してください。 |