すべてのプロダクト
Search
ドキュメントセンター

Dataphin:API SQL スクリプトの編集ガイドライン

最終更新日:Jan 14, 2026

この Topic では、クエリ API と操作 API のスクリプトを編集する方法について説明します。

Get/List (クエリタイプ)

  • サポートされているクエリパターン:

    • 同じデータソース内での単一テーブルクエリ、テーブル結合、ネストされたクエリ (サブクエリ) をサポートします。

    • 高度な SQL モード (MyBatis スタイル) をサポートします。

    • SELECT 句でのパラメーターの設定をサポートします。例: SELECT id_card, SUM(CASE WHEN id_card LIKE ${id_card} THEN 1 ELSE 0 END) AS proj_score FROM table WHERE c LIKE ${id_card} GROUP BY id_card

  • サポートされていない構文と使用法:

    • 複数の SQL 文: 単一の API で複数の SQL 文を実行することはできません (例: SELECT ...; SELECT ...;)。

    • 非 DQL 文: Get および List API は、INSERT、UPDATE、CREATE、DELETE などの非 DQL 文をサポートしていません。

    • SELECT *: SELECT * は使用しないでください。クエリする列を指定する必要があります。

    • 列のプレフィックス: 列名に `t.name` のようなテーブルプレフィックスがある場合は、戻りパラメーター名にエイリアスを使用する必要があります。例: SELECT t.name AS name FROM table

    • 集計関数: SUM()COUNT()MAX()MIN() などの集計関数を使用する場合は、戻りパラメーター名にエイリアスを使用する必要があります。例: SELECT SUM(num) AS total_num FROM table

    • ページング文: SQL ではページング文はサポートされていません。代わりに、ページングパラメーターを使用してページングを実装します。

      説明
      • SAP HANA データソースの場合、SQL でページング文を使用し、ページングパラメーターを定義することでページングを実装できます。

      • TDengine データソースの場合、SQL でページング文を使用します。`PageStart` および `PageSize` パラメーターを渡さない場合、完全なデータが返されます。これらのパラメーターを渡すと、定義した値に基づいてデータが返されます。

  • 高度な SQL モードで利用可能な動的フィールドクエリを使用すると、検索文にパラメーターを含めることで、戻りフィールドを動的に指定できます。

    • パラメーターフォーマット: パラメーターは `var_cols_` プレフィックスで始まる必要があります (例: `var_col_args`)。例: SELECT id, ${var_cols_args} FROM table1

    • 戻りパラメーター: サポートされているすべての動的クエリフィールドを戻りパラメーターとして追加します。

    • API 呼び出し: API を呼び出すとき、動的パラメーターでクエリフィールドを渡します。フィールドが渡されない場合、その値は結果で null になります。例: var_col_args=name,age,dept

    • 実際の実行: 実行される SQL 文は次のとおりです: SELECT id, name, age, dept FROM table1

  • 高度な SQL モードを使用する場合、MyBatis SQL の比較演算子にはエスケープ文字を使用する必要があります。

    元の記号

    エスケープ文字

    <

    &lt;

    >

    &gt;

    <=

    &lt;=

    >=

    &gt;=

  • データソース固有の制限:

    データソース

    制限

    TDengine

    • SQL で LIMIT/OFFSET を使用してページングを実装します。

    • オプションのパラメーターはサポートされていません。

    SAP HANA

    • ページングはサポートされていません。PageStart および PageSize パラメーターを渡しても効果はありません。

    • オプションのパラメーターはサポートされていません。

    Elasticsearch

    • ScrollId を使用してページングクエリを実装します。ScrollId を指定しない場合、最大 10,000 件のデータエントリをクエリできます。PageStart および PageSize ページングパラメーターを設定する際、10,000 件を超えるエントリをクエリしないでください。超えると呼び出しが失敗します。

      たとえば、PageStart を 9998 に設定した場合、PageSize の最大値は 2 です。

    • 最初の 10,000 件を超えるデータをクエリするには、`where` 句を使用して scrollId を指定します。API 開発中に scrollId リクエストパラメーターを指定し、クエリで対応する scrollId 値を渡すことができます。

      説明

      指定された scrollId 値を使用してクエリする場合、ページングは使用できません。PageStart と PageSize の値を渡さないでください。渡すと呼び出しが失敗します。

    • `where` 句では、条件付きクエリでサポートされるのは scrollId フィールドのみです。他のフィールドは効果がありません。

      例: select a from table where scrollId=${scrollId}

    • サブクエリ文はサポートされていません。

    HBase

    • 単一の rowkey クエリのみがサポートされています。rowkey は必須のリクエストパラメーターです。クエリ構文は次のとおりです:

      select info1.id as name from table where rowkey = ${rowkey}

    • `Order by` ソート構文はサポートされていません。

    • ページングはサポートされていません。PageStart および PageSize パラメーターを渡しても効果はありません。

    • `JOIN` 文はサポートされていません。

    PostgreSQL

    クロススキーマクエリはサポートされていません。データは現在の接続のスキーマからのみクエリできます。

    Impala

    高度な SQL モード (MyBatis スタイル) はサポートされていません。

    Lindorm

    JOIN 文はサポートされていません。

    DolphinDB

    Oracle および MySQL の SQL 互換モードのみがサポートされています。ネイティブ DolphinDB モードはサポートされていません。データソースを作成する際に、SQL 互換モードを Oracle または MySQL に設定して、そのデータソースを API 作成に使用してください。

    重要

    データソースの互換モードを変更すると、既存の API で予測不能なエラーが発生する可能性があります。必要に応じて設定を調整してください。

Create/Update/Delete (操作タイプ)

  • サポートされている SQL モード:

    • 基本 SQL モード: 標準の INSERTUPDATEDELETE 文をサポートします。${param} プレースホルダーを使用してパラメーターを渡します。このモードは単純なシナリオに適しています。

    • 高度な SQL モード (MyBatis スタイル): このモードは、条件付きステートメント、動的フィールド、バッチ操作などの複雑なロジックに使用できます。次のタグがサポートされています:

      <if>, <choose>, <when>, <otherwise>, <trim>, <foreach>
  • バッチ処理に高度な SQL モードを使用すると、各データ入力が個別に実行されるため、パフォーマンスが低下します。したがって、バッチ作成、更新、または削除 API には高度なモードを使用しないでください。

  • SQL 文に in 条件パラメーターが含まれている場合、各データ入力は個別に実行されます。これにより、パフォーマンスが低下します。したがって、in 条件パラメーターの使用は避けるべきです。

  • PostgreSQL のみが `RETURNING` 構文をサポートしています。