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

OpenSearch:SQL 検索処理

最終更新日:Jun 23, 2026

Traffic API は、さまざまなクエリシナリオに対応する SQL ベースの検索構文を提供します。

URL

query?sql=SELECT brand, COUNT(*) FROM phone GROUP BY (brand)&kvpair=trace:INFO;formatType:json
  • この URL ではリクエストヘッダーとエンコーディングが省略されています。

  • この URL ではアプリケーションのホストアドレスが省略されています。

  • クエリパラメーターの定義と例については、「クエリパラメーター」セクションをご参照ください。

リクエストプロトコル

HTTP です。

リクエストメソッド

GET です。

サポートされる形式

JSON です。

署名メカニズム

認証署名の計算方法

パラメーター

説明

accessUserName

String

ユーザー名です。[インスタンスの詳細] > [ネットワーク情報] ページで確認できます。

accessPassWord

String

パスワードです。[インスタンスの詳細] > [ネットワーク情報] ページで変更できます。

import com.aliyun.darabonba.encode.Encoder;
import com.aliyun.darabonbastring.Client;

public class GenerateAuthorization {

    public static void main(String[] args) throws Exception {
        String accessUserName = "username";
        String accessPassWord = "password";
        String realmStr = "" + accessUserName + ":" + accessPassWord + "";
        String authorization = Encoder.base64EncodeToString(Client.toBytes(realmStr, "UTF-8"));
        System.out.println(authorization);
    }
}

次の例は、想定される認証出力を示しています。

cm9vdDp******mdhbA==

HTTP リクエストでは、認証パラメーターに Basic プレフィックスを追加します。

例:

authorization: Basic cm9vdDp******mdhbA==

クエリパラメーター

パラメーター

必須

説明

sql

String

はい

詳細については、「クエリ句」をご参照ください。

kvpair

String

いいえ

詳細については、「kvpair 句」をご参照ください。

クエリパラメーターの使用方法

  • sql: クエリ句を使用して、完全な SQL ステートメントを記述します。

レスポンスパラメーター

パラメーター

説明

total_time

Double

クエリの総実行時間です。

covered_percent

Double

カバレッジ率です。

row_count

int

返される行数です。

curl の例

curl --location --request GET 'http://ha-cn-*******.public.ha.aliyuncs.com/query?sql=select * from index_hdf&kvpair=trace:INFO;format:full_json' \
--header 'authorization: Basic ******************' \
--header 'host: ha-cn-*******.public.ha.aliyuncs.com'
説明
  • この例ではパブリックネットワークエンドポイントを使用しています。詳細については、「ネットワーク情報」をご参照ください。

検索の例

正常なレスポンス

{
    "total_time": 4.557,
    "covered_percent": 1.0,
    "row_count": 1,
    "format_type": "full_json",
    "search_info": {},
    "trace": [],
    "sql_result": {
        "data": [
            [
                1
            ]
        ],
        "column_name": [
            "id"
        ],
        "column_type": [
            "int64"
        ]
    },
    "error_info": {
        "ErrorCode": 0,
        "Error": "ERROR_NONE",
        "Message": ""
    }
}

エラーレスポンス

{
    "total_time": 15.96,
    "covered_percent": 0.0,
    "row_count": 0,
    "format_type": "full_json",
    "search_info": {},
    "trace": [],
    "sql_result": {
        "data": [],
        "column_name": [],
        "column_type": []
    },
    "error_info": {
        "ErrorCode": 8010,
        "Error": "call sql plan service failed.",
        "Message": "failed to get sql plan, error message is [IQUAN_EC_INTERNAL_ERROR] internal error : SQL validation failed. From line 1, column 15 to line 1, column 23: Object 'index_hdf' not found\nFrom line 1, column 15 to line 1, column 23: Object 'index_hdf' not found\norg.apache.flink.table.api.ValidationException: SQL validation failed. From line 1, column 15 to line 1, column 23: Object 'index_hdf' not found\n\tat org.apache.flink.table.planner.calcite.FlinkPlannerImpl.org$apache$flink$table$planner$calcite$FlinkPlannerImpl$$validate(FlinkPlannerImpl.scala:149)\n\tat org.apache.flink.table.planner.calcite.FlinkPlannerImpl.validate(FlinkPlannerImpl.scala:108)\n\tat org.apache.flink.table.planner.delegation.ParserImpl.validate(ParserImpl.java:91)\n\tat com.taobao.search.iquan.core.api.impl.SqlQueryableImpl$SqlWorkFlow.validateSql(SqlQueryableImpl.java:646)\n\tat com.taobao.search.iquan.core.api.impl.SqlQueryableImpl$SqlWorkFlow.process(SqlQueryableImpl.java:392)\n\tat com.taobao.search.iquan.core.api.impl.SqlQueryableImpl.select(SqlQueryableImpl.java:134)\n\tat com.taobao.search.iquan.client.common.service.SqlQueryService.sqlQuery(SqlQueryService.java:89)\n\tat com.taobao.search.iquan.client.IquanClient.sqlQuery(IquanClient.java:79)\nCaused by: org.apache.calcite.runtime.CalciteContextException: From line 1, column 15 to line 1, column 23: Object 'index_hdf' not found\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\n\tat sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n\tat java.lang.reflect.Constructor.newInstance(Constructor.java:422)\n\tat org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:467)\n\tat org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:883)\n\tat org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:868)\n\tat org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:5032)\n\tat org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(IdentifierNamespace.java:179)\n\tat org.apache.calcite.sql.validate.IdentifierNamespace.validateImpl(IdentifierNamespace.java:184)\n\tat org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)\n\tat org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1067)\n\tat org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1041)\n\tat org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3202)\n\tat org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3187)\n\tat org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3450)\n\tat org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60)\n\tat org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)\n\tat org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1067)\n\tat org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1041)\n\tat org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:232)\n\tat org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:1016)\n\tat org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:724)\n\tat org.apache.flink.table.planner.calcite.FlinkPlannerImpl.org$apache$flink$table$planner$calcite$FlinkPlannerImpl$$validate(FlinkPlannerImpl.scala:144)\n\t... 7 more\nCaused by: org.apache.calcite.sql.validate.SqlValidatorException: Object 'index_hdf' not found\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\n\tat sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n\tat java.lang.reflect.Constructor.newInstance(Constructor.java:422)\n\tat org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:467)\n\tat org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:560)\n\t... 26 more\n"
    }
}

注意事項