AnalyticDB for MySQL は、特定のオフセットに基づいて Simple Log Service Logstore から AnalyticDB for MySQL Data Warehouse Edition クラスターにデータをリアルタイムで同期できるデータ同期機能を提供します。 この機能は、ログデータのリアルタイム分析の要件を満たすのに役立ちます。
前提条件
AnalyticDB for MySQL Data Warehouse Edition クラスター、Simple Log Service プロジェクト、およびプロジェクトに属するログストアが、同じリージョンに作成されます。詳細については、「クラスターを作成する 」および「クイックスタート: Logtail を使用して ECS テキストログを収集および分析する」をご参照ください。
Data Warehouse Edition クラスターにデータベースアカウントが作成されており、そのアカウントにはターゲットデータベースとテーブルに対する読み取りおよび書き込み権限が付与されています。 詳細については、「データベースアカウントを作成する」をご参照ください。
AnalyticDB for MySQL Data Warehouse Edition クラスターにターゲットデータベースとターゲットテーブルが作成されています。 詳細については、「CREATE TABLE」をご参照ください。
使用上の注意
1 つの Simple Log Service Logstore から AnalyticDB for MySQL1 つのクラスターのみから。複数の クラスターの 1 つのターゲットテーブルにのみデータを同期できます。 複数の Logstore からデータを同期するには、クラスターに複数のターゲットテーブルを作成します。
請求ルール
データ同期機能は、2025 年 6 月 30 日までパブリックプレビュー中です。 パブリックプレビュー期間中は、この機能を使用して Simple Log Service データを同期しても課金されません。 パブリックプレビュー終了後は、データ同期機能で使用される ACU (AnalyticDB Compute Unit) 数に基づいて、ACU エラスティックリソース料金が課金されます。 詳細については、「料金」をご参照ください。
手順
ステップ 1: (オプション) RAM 認証を設定する。
ステップ 2: データソースを作成する。
ステップ 3: データ同期ジョブを作成する。
ステップ 4: データ同期ジョブを開始する。
ステップ 5: データソースを管理する。
(オプション) RAM 権限を設定する
同じ Alibaba Cloud アカウント内の Simple Log Service データを同期する場合、このステップをスキップしてデータソースを作成できます。詳細については、「データソースを作成する」セクションをご参照ください。
Simple Log Service データをAnalyticDB for MySQL クラスタに Alibaba Cloud アカウントを跨って同期する場合は、データソースに Resource Access Management (RAM) ロールを作成し、ポリシーをアタッチすることで RAM ロールに権限を付与し、RAM ロールの信頼ポリシーを編集する必要があります。
RAM ロールを作成します。詳細については、「信頼されている Alibaba Cloud アカウントの RAM ロールを作成する」をご参照ください。
説明[その他の Alibaba Cloud アカウント] パラメーターで [信頼できる Alibaba Cloud アカウントを選択] を選択し、AnalyticDB for MySQL [ログイン] クラスターが属する Alibaba Cloud アカウントの ID を入力します。 [アカウント管理] コンソールに移動し、 コンソールにログインし、[概要] ページで表示します。 ページに移動して [アカウント ID]。 を表示できます。
AliyunAnalyticDBAccessingLogRolePolicy ポリシーを RAM ロールにアタッチします。 詳細については、「RAM ロールに権限を付与する」トピックの「方法 2: [ロール] ページで [詳細な権限] をクリックして RAM ロールに権限を付与する」セクションをご参照ください。
指定された Alibaba Cloud アカウントの AnalyticDB for MySQL クラスターが RAM ロールを引き受けることができるように、RAM ロールの信頼ポリシーを編集します。 詳細については、「RAM ロールの信頼ポリシーを編集する」をご参照ください。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<Alibaba Cloud アカウント ID>:root" // Alibaba CloudアカウントID ], "Service": [ "<Alibaba Cloud アカウント ID>@ads.aliyuncs.com" // Alibaba CloudアカウントID ] } } ], "Version": "1" }
説明上記のコードでは、Alibaba Cloud アカウント ID パラメーターは、ステップ 1 で入力した AnalyticDB for MySQL クラスターが属する Alibaba Cloud アカウントの ID を指定します。 このパラメーターを指定するときは、山かっこ (<>) を削除してください。
データソースを作成する
Simple Log Service データソースを作成済みの場合は、このステップをスキップして、データ同期ジョブを作成します。詳細については、「データ同期ジョブを作成する」セクションをご参照ください。
AnalyticDB for MySQL コンソール にログインします。 コンソールの左上隅で、リージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 管理するクラスターを見つけ、クラスター ID をクリックします。
左側のナビゲーションウィンドウで、
を選択します。ページの右上隅にある [データソースの作成] をクリックします。
[データソースの作成] ページで、次の表に示すパラメーターを設定します。
パラメーター
説明
[データソースの種類]
[SLS] を選択します。
[データソース名]
データソースの名前。 デフォルトでは、データソースの種類と現在の時刻に基づいてシステムによって名前が生成されます。 業務要件に基づいて名前を変更できます。
[データソースの説明]
データソースの説明。 たとえば、ユースケースと業務上の制限を入力できます。
[デプロイモード]
データソースのデプロイモード。 [Alibaba Cloud インスタンス] のみがサポートされています。
[Simple Log Service プロジェクトのリージョン]
ソース Simple Log Service プロジェクトが存在するリージョン。
説明AnalyticDB for MySQL クラスターが存在するリージョンのみがサポートされています。
[Alibaba Cloud アカウント間]
Simple Log Service データを Alibaba Cloud アカウント間で同期するかどうかを指定します。 同じ Alibaba Cloud アカウント内または Alibaba Cloud アカウント間で、Simple Log Service から AnalyticDB for MySQL クラスターにデータを同期できます。 有効な値:
[いいえ]。
[はい]。 [はい] を選択した場合は、[Alibaba Cloud アカウント] パラメーターと [RAM ロール] パラメーターを設定する必要があります。 RAM 認証の設定方法については、このトピックの「(オプション) RAM 認証を設定する」セクションをご参照ください。
説明[Alibaba Cloud アカウント]: Simple Log Service プロジェクトが属する Alibaba Cloud アカウントの ID。
[RAM ロール]: Simple Log Service プロジェクトが属する Alibaba Cloud アカウントの RAM ロールの名前。 RAM ロールは、このトピックの「(オプション) RAM 認証を設定する」セクションのステップ 1 で作成されたロールです。
[Simple Log Service プロジェクト]
ソース Simple Log Service プロジェクトの名前。
[Simple Log Service Logstore]
ソース Simple Log Service Logstore の名前。
[作成]をクリックします。
同期ジョブを作成する
左側のナビゲーションウィンドウで、
を選択します。ページの右上隅で、クリックページの右上隅にある [同期ジョブの作成]。 をクリックします。
Simple Log Service データソース タブの [同期ジョブの作成] ページで、 [ソースと宛先の設定]、 [宛先データベースとテーブルの設定]、および [同期設定] セクションのパラメーターを構成します。
次の表は、[ソースとターゲットの設定] セクションのパラメーターについて説明しています。
パラメータ
説明
[ジョブ名]
データ同期ジョブの名前です。デフォルトでは、システムによってデータソースの種類と現在の時刻に基づいて名前が生成されます。ビジネス要件に基づいて名前を変更できます。
[データソース]
既存の Simple Log Service データソースを選択するか、データソースを作成できます。
[AnalyticDB For MySQL アカウント]
AnalyticDB for MySQL クラスターのデータベースアカウント。
[AnalyticDB For MySQL パスワード]
AnalyticDB for MySQL クラスターのデータベースアカウントのパスワード。
次の表は、[ターゲットデータベースとテーブルの設定] セクションのパラメーターについて説明しています。
パラメータ
説明
[データベース名]
AnalyticDB for MySQL クラスターのデータベースの名前。
[テーブル名]
AnalyticDB for MySQL クラスターのテーブルの名前。
[ソースデータのプレビュー]
クリック [最新の 10 件のログストアデータエントリを表示] して、ソース Simple Log Service ログストアの最新の 10 件のデータエントリを表示します。
[スキーマフィールドマッピング]
ソースフィールドとデスティネーションフィールドのマッピング設定。[ソースフィールド] 列のソースフィールドと [デスティネーションテーブルフィールド] 列のデスティネーションフィールドは、システムによって自動的に入力されます。AnalyticDB for MySQL [デスティネーションテーブルフィールド] 列と [ソースフィールド] 列のフィールド間のマッピングが正しくない場合は、フィールドを変更します。
たとえば、AnalyticDB for MySQL クラスターのテーブルのフィールド名が name で、ソース Simple Log Service Logstore の対応するフィールド名が user_name の場合、システムは [ソースフィールド] 列と [ターゲットテーブルフィールド] 列に name フィールドを自動的に入力します。 この場合は、[ソースフィールド] 列の name フィールドを user_name に変更する必要があります。
次の表は、[同期設定] セクションのパラメーターについて説明しています。
パラメータ
説明
[開始オフセット]
データ同期ジョブの開始時にシステムが Simple Log Service データの消費を開始する時点。
たとえば、たとえば、[開始オフセット]に パラメーターを [2024-04-09 13:10]、システムは 2024 年 4 月 9 日 13:10 以後に生成された最初のエントリから Simple Log Service データを消費します。 に設定すると、システムは 2024 年 4 月 9 日 13:10 以降に生成された最初のエントリから Simple Log Service データの消費を開始します。
[ダーティデータ処理モード]
ダーティデータに対して実行するアクション。 データ同期の際に、ターゲットテーブルのフィールドのデータ型が同期するソース Simple Log Service Logstore のフィールドのデータ型と一致しない場合、同期は失敗します。 たとえば、ソース Simple Log Service Logstore のフィールドの値が
abc
で、ターゲットテーブルの対応するフィールドのデータ型がint
の場合、値を必要なデータ型に変換できません。 この場合、同期例外が発生します。有効な値:
[同期を停止] (デフォルト): データ同期を停止します。 ターゲットテーブルのフィールドのデータ型を変更するか、[ダーティデータ処理モード] パラメーターを別のオプションに設定してから、同期ジョブを再開する必要があります。
[NULL として扱う]: ダーティデータを NULL 値としてターゲットテーブルに書き込み、元のダーティデータを破棄します。
たとえば、ソース Simple Log Service Logstore に合計 10 行のデータがあり、そのうち 2 行にダーティデータが含まれている場合、2 行の値は NULL 値に変換され、他の 8 行は想定どおりに書き込まれます。
[UNIX タイムスタンプを Datetime に変換]
UNIX タイムスタンプを DATETIME データ型の値に変換するかどうかを指定します。 ソースフィールドの値が UNIX タイムスタンプ (1710604800 など) で、対応するターゲットフィールドのデータ型が DATETIME または TIMESTAMP の場合は、この機能を有効にしてタイムスタンプを変換する必要があります。 この機能を有効にすると、ソースタイムスタンプの精度に基づいてタイムスタンプの精度を選択できます。 有効な値: [秒単位のタイムスタンプ]、[ミリ秒単位のタイムスタンプ]、[マイクロ秒単位のタイムスタンプ]。
[送信] をクリックします。
データ同期ジョブを開始する
[オン] [データ同期]ページで、作成したデータ同期ジョブを選択します ページで、作成したデータ同期ジョブを選択し、 列の [開始]アクション。 をクリックします。
ページの右上隅にある [検索] をクリックします。データ同期ジョブのステータスが [実行中] に変わると、ジョブが開始されます。
データソースを管理する
[データ同期] ページで、[アクション] 列で次の表に示す操作を実行できます。
操作 | 説明 |
[開始] | データ同期ジョブを開始します。 |
[詳細の表示] | ソースとターゲットの設定、実行ログ、監視結果など、データ同期ジョブの詳細を表示します。 |
[編集] | 開始オフセットやスキーマフィールドマッピングなど、ジョブのパラメーターを変更します。 |
[一時停止] | データ同期ジョブを一時停止します。 データ同期ジョブを一時停止した後、[開始] をクリックしてジョブを再開できます。 データ同期は、ジョブが一時停止された時点から自動的に再開されます。 |
[削除] | データ同期ジョブを削除します。 データ同期ジョブを削除すると、ジョブを復元できません。 慎重に行ってください。 |