このトピックでは、SQL 分析ステートメントを作成する方法について説明します。
前提条件
SQL 分析タスクを作成済みである必要があります。その後、SQL データ分析ワークベンチで、ビジネス要件を満たすように SQL 分析ステートメントを作成します。
背景情報
SQL 分析ステートメントは、次の種類のデータストレージテーブルからデータをクエリし、処理できます。
-
プラットフォームシステムテーブル:詳細については、「プラットフォームシステムテーブルの表示」をご参照ください。
-
プロダクトストレージテーブル:プロダクトストレージテーブルをクエリオブジェクトとして使用するには、そのデータソースをバックアップする必要があります。バックアップしない場合、過去 30 日間のデータしかクエリできません。
詳細については、「プロダクトストレージテーブルの表示」および「デバイスデータソースのバックアップ」をご参照ください。
-
カスタムストレージテーブル:カスタムストレージテーブルをクエリオブジェクトとして使用するには、データ解析の宛先として、または別の SQL 分析タスクの出力ストレージテーブルとして設定する必要があります。詳細については、「カスタムストレージテーブルの作成と管理」および「データ解析」をご参照ください。
注意事項
-
出力フィールド名は、文字またはドル記号 ($) で始まり、文字、数字、ドル記号 ($) 、アンダースコア (_) のみを含めることができます。名前は 60 文字を超えることはできません。
元のフィールド名がこれらの要件を満たさない場合は、エイリアスを定義する必要があります。
-
システムフィールドとシステム関数は、出力フィールドとして使用できません。
タイプ
サポートされていないフィールド
システムフィールド名
id、gmt_create、gmt_modified、creator、modifier、is_deleted、append_column_name、append_column_value、append_column_concat、scope_id、および__closure_context__。システム関数
COUNT、DATE_FORMAT、AVG、MAX、MIN、およびSUM。 -
システム予約フィールドをクエリする必要がある場合は、出力フィールドにエイリアスを使用する必要があります。
たとえば、デバイステーブル
${system.device}から gmt_create フィールドの値をクエリするには、出力フィールドに gmt_create_alias などのエイリアスを指定します。select gmt_create as gmt_create_alias from ${system.device} -
出力フィールドのデータ型がソースフィールドのデータ型と互換性がない場合は、型変換を行う必要があります。
たとえば、デバイステーブル
${system.device}の gmt_create フィールドは DATE 型です。宛先フィールドが異なる型を必要とする場合は、BIGINT などの互換性のある型にキャストする必要があります。select CAST(EXTRACT(EPOCH FROM gmt_create) * 1000 AS BIGINT) as gmt_create_alias from ${system.device} -
スケジュールされたタスクの現在時刻を取得するには、
${bizDate}の代わりにcurrent_timestamp()を使用してください。-
${bizDate}:SQL タスクのスケジュール時刻。この変数は、実際の実行時刻に動的に置き換えられます。1699286400000 のようなミリ秒単位の 13 桁のタイムスタンプです。この値は、SQL タスクの スケジューリングポリシーの有効日で指定された時間範囲内に含まれます。 -
current_timestamp():現在のシステム時刻を TIMESTAMP 値として返します。
${bizDate}を使用する理由:-
現在のスケジュールされたタスク:
${bizDate}とcurrent_timestamp()の両方を使用できます。 -
バックフィルタスク: 過去のトリガー時間に基づいてデータを処理するには、
${bizDate}を使用する必要があります。current_timestamp()を使用すると、現在の時刻でデータが処理されるため、真のバックフィルはできなくなります。
-
-
SQL 分析タスクでサポートされている関数の一覧については、「関数の概要」をご参照ください。
手順
-
[分析とインサイト] ページで目的の SQL 分析タスクを見つけ、[アクション] 列で [開発ワークベンチ] をクリックして [SQL データサービスワークベンチ] ページを開きます。
[SQL データサービスワークベンチ] の詳細については、「ステップ 1: SQL 分析タスクを作成する」をご参照ください。
-
[SQL データサービスワークベンチ] の左側のナビゲーションペインから、クエリするデータオブジェクトを選択します。
重要SQL 分析タスクでは、データストレージテーブルをクエリオブジェクトとして使用できます。詳細については、「オフラインデータストレージ」をご参照ください。
次の操作を行えます。
-
テーブル名をダブルクリックすると、クエリステートメントをすばやく生成できます。
-
クエリするテーブルの名前にカーソルを合わせ、次のいずれかの操作を行います。
-
[コピー] をクリックして、テーブル名を SQL エディターに貼り付けます。
-
[詳細] をクリックすると、テーブルのデータ構造を表示するか、最新 20 件のデータをプレビューできます。
-
-
-
SQL エディタで、SQL 分析ステートメントを作成します。
重要SQL 分析タスクを使用してカスタム時系列テーブルにデータを格納する場合、各データエントリにはタイムスタンプフィールド ts を含める必要があります。そうでない場合、データ書き込み操作は失敗します。書き込み操作が失敗した場合、[タスク操作] ページで SQL 分析タスクの[実行ログ]を表示できます。詳細については、「SQL 分析タスクを操作する」をご参照ください。
ワークベンチの上部にある [インテリジェントアシスタント] をクリックすると、[SQL テンプレート] を使用して SQL 分析ステートメントをすばやく生成できます。
-
[SQL テンプレート] タブで、データ分析のニーズに応じて関数を選択します。
関数の使用方法については、「サポートされている SQL 関数」をご参照ください。
-
システムが SQL 分析ステートメントを生成したら、[今すぐ使用] または [コピー] をクリックすると、ステートメントが SQL エディタに追加されます。
-
SQL エディタで、クエリオブジェクトなどのパラメーターを変更して、SQL 分析ステートメントを完成させます。
[式テンプレート] パネルには、[時間式] 、[文字列式] 、[条件式] 、[データ前処理式] の 4 つのカテゴリがあります。カテゴリを展開すると、
SELECT FROM_UNIXTIME(123456789)のような特定のテンプレートと SQL の例を表示できます。 -
-
任意: エディターの上部で、[SQL 検証
] アイコンをクリックして、SQL 分析文の構文を確認します。 -
ステートメントに問題がなければ、エディターの上部にある [実行
] アイコンをクリックします。-
成功すると、[実行ログ] タブで実行詳細を、[結果] タブで出力を確認できます。結果はさまざまなグラフ形式で表示できます。
また、[データのエクスポート] をクリックして、現在の結果を CSV ファイルとしてダウンロードすることもできます。
-
実行が失敗した場合は、[実行ログ] タブでエラーメッセージを確認し、問題を解決してから、ステートメントを再実行してください。
-