DataWorks DataService Studio はデータプッシュ機能を提供します。この機能を使用すると、SQL 文を実行して特定のデータソースからデータをクエリし、Webhook URL またはメールアドレスにプッシュできます。シンプルな構成を実行して、ビジネスデータをさまざまな Webhook URL またはメールアドレスに定期的にプッシュできます。このトピックでは、データプッシュ機能を構成および使用する方法について説明します。
概要
データプッシュ機能を使用すると、データプッシュタスクを作成できます。データプッシュタスクで単一または複数テーブルクエリの SQL 文を作成して、プッシュするデータとリッチテキストまたはテーブルを使用してデータを整理できます。スケジューリングサイクルを構成して、宛先の Webhook URL またはメールアドレスに定期的にデータをプッシュできます。
サポートされているデータソースの種類とプッシュチャネル
サポートされているデータソースの種類:
MySQL (StarRocks および Doris と互換)
PostgreSQL (Snowflake および Redshift と互換)
Hologres
MaxCompute
ClickHouse
プッシュチャネル: DingTalk、Lark、WeCom、Email、および Microsoft Teams。
制限
各 SELECT 文は最大 10,000 件のデータレコードを返すことができます。
データサイズの制限:
DingTalk にデータをプッシュする場合、データサイズは 20 KB を超えることはできません。
Lark にデータをプッシュする場合、データサイズは 20 KB を超えることはできず、画像のサイズは 10 MB 未満である必要があります。
WeCom にデータをプッシュする場合、各チャットボットは 1 分あたり最大 20 件のメッセージを送信できます。
Microsoft Teams にデータをプッシュする場合、データサイズは 28 KB を超えることはできません。
メールにデータをプッシュする場合、各データプッシュタスクに 1 つのメール本文のみを追加できます。メール本文が追加されている場合、メール本文を再度追加することはできません。制限の詳細については、使用しているメールサービスの 簡易メール転送プロトコル (SMTP) の制限事項をご参照ください。
データプッシュ機能は、次のリージョンの DataWorks ワークスペースでのみ使用できます。中国 (杭州)、中国 (上海)、中国 (北京)、中国 (深圳)、中国 (成都)、シンガポール、米国 (シリコンバレー)、米国 (バージニア)。
前提条件
サポートされているリージョンにデータソースが追加されています。DataWorks にデータソースを追加する方法については、「データソースを追加および管理する」をご参照ください。
リソースグループでインターネットアクセスが有効になっています。詳細については、「ネットワーク接続ソリューション」をご参照ください。
ステップ 1: データプッシュタスクを作成する
DataService Studio ページに移動します。
DataWorks コンソール にログオンします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[DataService Studio に移動] をクリックします。
データプッシュタスクを作成します。
DataService Studio ページの [サービス開発] ウィンドウで、[データプッシュ] をクリックします。
アイコンにポインタを移動し、[データプッシュタスクの作成] を選択します。[データプッシュ] ダイアログボックスで、[名前] パラメータを構成し、[OK] をクリックします。
ステップ 2: データプッシュタスクを構成する
(オプション) 準備を行う
以下のセクションでは、MaxCompute テーブルからデータをクエリし、クエリされたデータを特定の宛先にプッシュする方法について説明します。この例では、sales という名前のテーブルを使用します。データプッシュタスクを実行して、各部門の日次売上高と、当日と前日の売上高の差を、特定のプッシュチャネルを使用して宛先にプッシュできます。後続の操作を実行する前に、(オプション) 準備を行うセクションで作成した sales という名前のテーブルを目的の環境に作成する必要があります。次のサンプルコードは、sales という名前のテーブルを作成し、テーブルにデータを挿入する方法の例を示しています。MaxCompute テーブルの作成方法の詳細については、「MaxCompute テーブルの作成と管理」をご参照ください。
CREATE TABLE IF NOT EXISTS sales (
id BIGINT COMMENT '一意の識別子', /* Unique identifier */
department STRING COMMENT '部門名', /* Department name */
revenue DOUBLE COMMENT '売上高' /* Sales amount */
) PARTITIONED BY (ds STRING);
-- パーティションにデータを挿入します。 /* Insert data into partitions. */
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (1, 'Department 1', 12000.00);
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (2, 'Department 2', 21000.00);
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (3, 'Department 3', 5000.00);
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (1, 'Department 1', 11000.00);
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (2, 'Department 2', 20000.00);
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (3, 'Department 3', 10000.00); データソースを選択
[データソースの種類]、[データソース名]、および [データソース環境] パラメーターを構成します。 プッシュするデータのテーブルの環境に基づいて、[データソース環境] パラメーターを構成できます。 後続の操作を実行する前に、「(オプション)準備を行う」セクションで作成した販売テーブルの環境を確認してください。

サポートされているデータソースの種類については、「サポートされているデータソースの種類とプッシュチャンネル」をご参照ください。
SQL 文を記述する
プッシュするデータとクエリするデータを定義します。
[クエリ SQL を編集] セクションで、単一または複数テーブルのクエリ用の SQL 文を記述して、プッシュするデータを定義します。例:
-- 2024年1月2日の各部門の売上高をクエリします。 SELECT id, department, revenue FROM sales WHERE ds='20240102'; -- 当日の売上高と前日の売上高の差をクエリします。 SELECT a.revenue - b.revenue AS diff FROM sales a LEFT JOIN sales b ON a.id = b.id AND a.ds > b.ds WHERE a.ds = '20240102'AND b.ds = '20240101';SQL 文を記述すると、レスポンスパラメータが [パラメータ] タブの [出力パラメータ] タブに自動的に表示されます。パラメータが表示されない場合、または無効な場合は、[パラメータを自動的に解析] をオフにして、パラメータを手動で追加できます。

SQL 文で
${変数名}形式の変数を構成し、割り当てパラメータを使用して変数に値を割り当てることができます。割り当てパラメータは、日付と時刻の式または定数に設定できます。このように、変数の値は、割り当てパラメータの構成に基づいて、データプッシュタスクのコードで動的に置き換えられます。詳細については、「プッシュするコンテンツを構成する」をご参照ください。-- スケジューリングパラメータに基づいて時間変数に動的に値を割り当てます。 -- 毎日、各部門の最新の売上高をクエリします。 SELECT id, department, revenue FROM sales WHERE ds='${date}'; -- 当日の売上高と前日の売上高の差をクエリします。 SELECT a.revenue - b.revenue AS diff FROM sales a LEFT JOIN sales b ON a.id = b.id and a.ds > b.ds WHERE a.ds = '${date}' AND b.ds = '${previous_date}';
セグメント化クエリを実行します。
テーブルに大量のデータが含まれている場合、データプッシュ機能では、[ネクストトークン] メソッドを使用してセグメント化クエリを実行できます。ネクストトークンメソッドを使用するには、次の手順を実行します。[クエリ SQL を編集] セクションの右上隅にある [コードヘルプ] ドロップダウンリストから [コードテンプレート] を選択します。[コードテンプレート] ダイアログボックスで、[ネクストトークン] セクションの [テンプレートコードを挿入] をクリックします。
プッシュするコンテンツを設定する
[プッシュするコンテンツ] セクションで、[Markdown] または [テーブル] を使用して、特定の Webhook URL にプッシュするコンテンツを設定します。
[タイトル] パラメーターを構成します。Body パラメーターの右側にある [追加] をクリックし、[Markdown]、[表]、または [メール本文] を選択して、コンテンツを構成します。プッシュするコンテンツを構成した後、[プレビュー] をクリックしてコンテンツをプレビューできます。例:
メールアドレスにデータをプッシュする場合、Markdown セクションと テーブルコンテンツ セクションのカスタムコンテンツは、添付ファイルとしてメールに表示されます。メール本文はレンダリングされ、メールメッセージに表示されます。
メールアドレスにデータをプッシュしない場合、Markdown セクションと テーブルコンテンツ セクションのカスタムコンテンツは、本文として Webhook URL に表示されます。メール本文は、Webhook によってプッシュされたメッセージでは非表示になります。
Markdown
変数を設定する:
${パラメーター名}形式の [割り当てパラメーター] と [出力パラメーター] を変数としてリッチテキストに追加します。データプッシュタスクが実行されると、リッチテキスト内の変数は、割り当てパラメーターの値と SQL クエリの出力に置き換えられます。[割り当てパラメーター]:右側のナビゲーションウィンドウで、[パラメーター] をクリックします。[割り当てパラメーター] タブで、[定数] または [日時式](スケジューリングパラメーター)を変数に割り当てます。
[出力パラメーター]:出力パラメーターは、クエリされたデータを示します。たとえば、
SELECT A, B… FROM TABLE文のA と Bは出力パラメーターです。
指定したユーザーを自動的に @ する:Lark の Webhook URL にコンテンツをプッシュする場合、関連する設定を実行して、システムが指定したユーザーを自動的に @ できるようにすることができます。
デフォルトでは、Markdown を選択すると、コンテンツはリッチテキストを使用して設定されます。コンテンツを Lark の Webhook URL にプッシュする場合、
アイコンをクリックし、<at id="all" />または<at email="username@example.com" />を使用して、指定したユーザーを @ することができます。
Markdown モードでは、画像や DingTalk 絵文字の挿入など、他の操作も実行できます。

テーブルコンテンツ
[列を追加] をクリックして列を追加します。次に、[パラメーター] ドロップダウンリストからパラメーターを選択して、パラメーターを列に関連付けます。
Lark の Webhook URL にコンテンツをプッシュする場合、次の手順を実行して、プッシュするコンテンツの表示効果を設定できます。目的の列を見つけ、列の右側にある
アイコンをクリックします。[フィールドの変更] ダイアログボックスで、[フィールド]、[表示名]、[表示スタイル]、および [条件] パラメーターを設定します。[フィールド]:ドロップダウンリストから別のフィールドを選択できます。
[表示名]:コンテンツをオフィスソフトウェアにプッシュするときにテーブルヘッダーに表示される名前。
[表示スタイル]:プレフィックスまたはサフィックスを指定すると、プレフィックスまたはサフィックスがフィールドの戻り値に追加されます。
[条件]:このパラメーターを設定して、フィールドの [戻り値] を指定された値と比較できます。 [満たす] または [満たさない] 指定された条件の値の色を指定し、ドロップダウンリストから [追加のユニコード] を選択できます。

説明プッシュチャンネルによって、サポートされるテーブルと表示効果が異なります。
DingTalk:Markdown またはテーブルを選択してテーブルを追加できます。テーブルを選択した場合、[フィールドの変更] ダイアログボックスの [表示スタイル] パラメーターと [条件] パラメーターの設定は有効になりません。DingTalk のモバイルクライアントでは、テーブルを表示できません。
Lark:Markdown またはテーブルを選択してテーブルを追加できます。Markdown またはテーブルを使用して定義されたテーブルは、期待どおりに表示できます。
WeCom:Markdown を選択してテーブルを追加できます。ただし、Markdown を使用して定義されたテーブルは、期待どおりに表示できません。
Teams のモバイルクライアント:Markdown を選択してテーブルを追加できます。Markdown を使用して定義されたテーブルは、設定に基づいて期待どおりに表示できます。
メール本文
DataWorks データプッシュでは、プッシュコンテンツにメール本文を追加できます。メール本文を編集する場合は、次の点に注意してください。
各データプッシュタスクには、メール本文を 1 つだけ追加できます。
メッセージ本文は、メールアドレスにデータをプッシュする場合にのみレンダリングされます。メールアドレスにデータをプッシュしない場合、メール本文は、Webhook によってプッシュされたメッセージでは非表示になります。

ステップ 3:データプッシュ設定を構成する
[データプッシュ設定] を構成する前に、次の手順を実行して送信先を作成する必要があります。[DataService Studio] ページの左下隅にある
アイコンをクリックします。表示されるページで、[送信先管理] タブをクリックします。次に、[送信先を作成] をクリックします。次のプッシュチャンネルがサポートされています。DingTalk、Lark、WeCom、Microsoft Teams、およびメール。
Webhook 送信先を作成する
[送信先を作成] ダイアログボックスで、次のパラメーターを構成します。
種類: プッシュチャンネルを選択します。有効値:DingTalk、Lark、WeCom、および Teams。
送信先名: 送信先の名前を入力します。
Webhook: 選択したプッシュチャンネルの Webhook URL を入力します。
詳細については、「Webhook トリガーを使用する」をご参照ください。
詳細については、「Workflows for Microsoft Teams で受信 Webhook を作成する」をご参照ください。

メール送信先を作成する
[データプッシュ設定] を構成する前に、次の手順を実行して送信先を作成する必要があります。DataService Studio ページの左下隅にある
アイコンをクリックします。表示されるページで、[送信先管理] タブをクリックします。次に、[送信先を作成] をクリックします。
[送信先を作成] ダイアログボックスで、次のパラメーターを構成します。
種類: メール を選択します。
送信先名: 送信先の名前を入力します。
SMTP ホスト: メールサーバーのアドレス。
SMTP ポート: メールサーバーのポート番号。このパラメーターのデフォルト値は 465 です。ポート番号は手動で変更できます。
送信者アドレス: メールが送信されるメールアドレス。
SMTP アカウント: 完全なメールアカウント。
SMTP パスワード: メールアカウントのパスワード。
受信者アドレス: メールが送信されるメールアドレス。

データプッシュ設定を構成する
データプッシュタスクの右側のナビゲーションウィンドウで、[プッシュ設定] タブをクリックします。このタブでは、スケジューリングサイクル、スケジューリング用のリソースグループ、および送信先を指定できます。このようにして、システムはデータプッシュタスクを定期的に実行して、指定された送信先にデータをプッシュします。パラメーター:
スケジューリングサイクルに関連するパラメーター: データプッシュタスクのスケジューリングサイクルと、データプッシュタスクがスケジュールされる特定の時点を指定します。
スケジューリングサイクル
指定時間
スケジューリング時間
例
月
毎月データプッシュタスクが実行される日。
データプッシュタスクの実行がスケジュールされている時点。
スケジューリング期間: 月
指定時間: 毎月 1 日
スケジューリング時間: 08:00
説明: データプッシュタスクは、毎月の 1 日の 08:00 に実行されます。
週
毎週データプッシュタスクが実行される日。
データプッシュタスクの実行がスケジュールされている時点。
スケジューリング期間: 週
指定時間: 月曜日
スケジューリング時間: 09:00
説明: データプッシュタスクは、毎週月曜日の 09:00 に実行されます。
日
説明データプッシュタスクは毎日実行されます。
データプッシュタスクの実行がスケジュールされている時点。
スケジューリング期間: 日
スケジューリング時間: 08:00
説明: データプッシュタスクは、毎日 08:00 に実行されます。
時間
説明次のいずれかの方法を選択して、データプッシュタスクを実行する時間を指定できます。
データプッシュタスクを実行する間隔を指定します。
データプッシュタスクを実行する時間と分を指定します。
間隔を指定する
開始時間: 02:00
時間間隔: 1
終了時間: 23:59
説明: データプッシュタスクは、毎日 00:00 から 23:59 まで 1 時間ごとに実行されます。
時間と分を指定する
時間を指定: 0 と 1
分を指定: 10
説明: データプッシュタスクは、毎日 00:10 と 01:10 に実行されます。
タイムアウト定義: データプッシュタスクのタイムアウト期間を指定します。指定されたタイムアウト期間内にデータプッシュタスクが実行を完了できない場合、データプッシュタスクは終了します。有効値:
システムデフォルト: デフォルトでは、システムは使用するリソースグループの負荷に基づいて、データプッシュタスクのタイムアウト期間を動的に調整します。タイムアウト期間は 3 ~ 7 日です。データプッシュタスクの実行時間が指定されたタイムアウト期間を超えると、データプッシュタスクは終了します。
カスタム: ビジネス要件に基づいて、データプッシュタスクのタイムアウト期間を指定できます。たとえば、カスタム が選択され、データプッシュタスクのタイムアウト期間が 1 時間であるとします。データプッシュタスクの実行時間が 1 時間を超えると、データプッシュタスクは終了します。
有効期限: データプッシュタスクの有効期間を指定します。データプッシュタスクは、指定された有効期間中にのみ自動的に実行されます。有効値:
永続的: データプッシュタスクは永続的に有効です。
指定時間: ビジネス要件に基づいて、データプッシュタスクの有効期間を指定できます。たとえば、指定時間 が選択され、期間が 2024-01-01 から 2024-12-31 までであるとします。データプッシュタスクは、指定された期間中に自動的に実行されます。
スケジューリング用リソースグループ: データプッシュタスクを実行するために使用されるスケジューリング用リソースグループを指定します。専用スケジューリングリソースグループ または サーバーレスリソースグループ を使用できます。サーバーレスリソースグループは汎用リソースグループです。スケジューリング用リソースグループは、データプッシュタスクを定期的に実行するためのリソースを提供します。リソースグループの詳細については、「リソースグループ管理」をご参照ください。
送信先: 送信先を指定します。ドロップダウンリストから送信先を選択できます。[送信先管理] タブで送信先を管理できます。
説明DingTalk Webhook URL にデータをプッシュする場合、DingTalk グループに DingTalk チャットボットを追加するときに、[セキュリティ設定] セクションで カスタムキーワード を選択し、[追加] をクリックしてキーワードを追加する必要があります。プッシュするコンテンツには、追加したキーワードも含まれている必要があります。

ステップ 4:データプッシュタスクをテストする
データプッシュタスクを作成した後、ツールバーの [保存] をクリックして構成を保存します。次に、ツールバーの [テスト] をクリックします。「データプッシュタスクのテスト」ダイアログボックスで、「リクエストパラメータ」セクションの変数に定数を割り当て、[テスト] をクリックします。

データプッシュタスクを送信して公開する前に、開発状態でプッシュタスクをテストする必要があります。
ステップ 5: データプッシュタスクを公開する
データプッシュタスクのバージョンを管理する
データプッシュタスクのテストに合格したら、ツールバーの [送信] をクリックして、データプッシュタスクを送信します。データプッシュタスクを送信しない場合、データプッシュタスクはドラフト状態になり、バージョンは生成されません。
右側のナビゲーションウィンドウで、[バージョン] タブをクリックします。このタブで、目的のバージョンを見つけ、[アクション] 列の [公開] をクリックします。データプッシュタスクが公開されると、プッシュ設定に基づいて、プッシュするコンテンツを指定した宛先にプッシュできます。
[バージョン] タブでは、データプッシュタスクのバージョンを管理できます。
ステータス
オプション
手順
公開
データプッシュタスク管理
[データプッシュタスク管理] 列の [アクション] をクリックして、公開済みのデータプッシュタスクの詳細を表示します。詳細については、このトピックの「データプッシュタスクの管理」セクションをご参照ください。
公開可能
公開
[アクション] 列の [公開] をクリックして、特定のバージョンのデータプッシュタスクを公開します。
廃止
[廃止] 列の [アクション] をクリックして、特定のバージョンのデータプッシュタスクを廃止します。この操作を実行すると、特定のバージョンのデータプッシュタスクのステータスが「廃止」に変わります。
オフライン と 廃止
バージョンの詳細
[バージョンの詳細] をクリックして、特定のバージョンのデータプッシュタスクの構成とプッシュされたコンテンツを表示します。
ロールバック
[ロールバック] をクリックして、データプッシュタスクを特定のバージョンにロールバックします。
説明[バージョンの詳細] オプションと [ロールバック] オプションは、任意の状態のデータプッシュタスクで使用できます。

データプッシュタスクを管理する
データプッシュタスクが公開された後、次の手順を実行して [データプッシュタスク管理] ページに移動できます。右側のナビゲーションウィンドウで、[バージョン] タブをクリックします。このタブで、目的のバージョンを見つけ、[アクション] 列の [データプッシュタスク管理] をクリックします。または、[サービス管理] をクリックすることもできます。表示されるページの左側のナビゲーションウィンドウで、[データプッシュタスク管理] をクリックします。
[データプッシュタスク管理] ページの [データプッシュタスク] タブで、公開済みのすべての データプッシュタスク と、各データプッシュタスクに関する次の情報 (ID、名前、データソース名、データソース環境、ノードモード、スケジューリング用リソースグループ、所有者、パブリッシャー、最終公開時刻) を表示できます。また、公開済みのデータプッシュタスクに対して操作を実行することもできます。次の表に、操作について説明します。
操作 | 説明 |
非公開 | [アクション] 列の [非公開] をクリックして、データプッシュタスクを非公開にします。 |
テスト | [テスト] 列の [アクション] をクリックして、データプッシュタスクをテストします。 |
アイコンを [名前] 列のデータプッシュタスクでクリックすると、データプッシュタスクの構成を表示できます。

公開済みのデータプッシュタスクをテストする
データプッシュタスクが公開されると、データプッシュタスクは、構成されたプッシュ設定に基づいて、構成したコンテンツを指定された宛先にプッシュします。次のいずれかの方法を使用して、[データプッシュタスクのテスト] ページに移動できます。
方法 1:[サービス管理] をクリックします。左側のナビゲーションウィンドウで、[データプッシュタスクのテスト] をクリックします。
方法 2:[サービス管理] をクリックします。左側のナビゲーションウィンドウで、[データプッシュタスク管理] をクリックします。[データプッシュタスク管理] ページの [データプッシュタスク] タブで、目的のデータプッシュタスクを見つけ、[アクション] 列の [テスト] をクリックします。
公開済みのデータプッシュタスクをテストして、データプッシュタスクが期待どおりにデータをプッシュするかどうか、および指定された宛先がデータを受信できるかどうかを確認できます。
