クエリエンドポイント

サンプル API 呼び出し

以下のセクションでは、Query Service APIで/queries エンドポイントを使用して実行できる呼び出しを説明します。 各呼び出しでは一般的な API 形式、必須ヘッダーを示すリクエスト例および応答例が示されています。

クエリのリストの取得

組織のすべてのクエリのリストを取得するには、/queries エンドポイントにGET リクエストを行います。

API 形式

GET /queries
GET /queries?{QUERY_PARAMETERS}
  • {QUERY_PARAMETERS}:(オプション)応答に返される結果を設定するリクエストパスに追加されるパラメーター。 複数のパラメーターを含め、アンパサンド(&)で区切ることができます。 使用できるパラメーターは以下のとおりです。

クエリパラメータ

次に、クエリの一覧表示に使用可能なクエリパラメーターのリストを示します。 これらのパラメーターはすべてオプションです。 パラメーターを指定せずにこのエンドポイントを呼び出すと、組織で使用可能なすべてのクエリが取得されます。

パラメーター
説明
orderby
結果の並べ替えに使用するフィールドを指定します。 サポートされているフィールドは createdupdated です。 例えば、orderby=created は、昇順で結果を並べ替えます。 作成前に - を追加する(orderby=-created)と、項目が作成日の降順で並べ替えられます。
limit
ページサイズの制限を指定して、ページに含める結果の数を制御します。 (デフォルト値:20
start
結果を並べ替えるには、ISO形式のタイムスタンプを指定します。 開始日が指定されていない場合、API呼び出しは最も古い作成されたクエリを最初に返し、その後、より最近の結果を引き続きリストします。
ISO タイムスタンプを使用すると、日付と時刻の詳細レベルを変えることができます。 基本的なISO タイムスタンプは、2020年9月7日の日付を表すために2020-09-07の形式になります。 より複雑な例では、2022-11-05T08:15:30-05:00と書かれ、2022年11月5日(PT)午前8:15:30、米国東部標準時に対応します。 タイムゾーンはUTC オフセットで指定でき、サフィックス「Z」(2020-01-01T01:01:01Z)で示されます。 タイムゾーンが指定されていない場合、デフォルトは0になります。
property
フィールドに基づいて結果をフィルタリングします。 フィルターは HTML エスケープする​必要があります。 複数のフィルターのセットを組み合わせるには、コンマを使用します。 サポートされているフィルターは createdupdatedstate、および id です。 サポートされる演算子のリストは、>(次より大きい)、<(次より小さい)、>=(次よりも大きいか等しい)、<=(次よりも小さいか等しい)、==(等しい)、!=(次と等しくない)、~(次を含む)です。 例えば、id==6ebd9c2d-494d-425a-aa91-24033f3abeec は指定した ID を持つすべてのクエリを返します。
excludeSoftDeleted
ソフト削除されたクエリを含める必要があるかどうかを示します。 例えば、excludeSoftDeleted=false はソフト削除クエリを​含みます。 (ブール値、デフォルト値:true
excludeHidden
ユーザー主導でないクエリを表示するかどうかを示します。 この値を false に設定すると、CURSOR 定義、FETCH、メタデータクエリなど、ユーザ主導でないクエリが​含まれます。 (ブール値、デフォルト値:true
isPrevLink
isPrevLink クエリパラメーターはページ分割に使用されます。 API呼び出しの結果は、created タイムスタンプとorderby プロパティを使用して並べ替えられます。 結果のページを移動する場合、戻ってページングする場合、isPrevLinkはtrueに設定されます。 クエリの順序を逆にします。 例として、「次へ」リンクと「前へ」リンクを参照してください。

リクエスト

次のリクエストは、組織に対して作成された最新のクエリを取得します。

curl -X GET https://platform.adobe.io/data/foundation/query/queries?limit=1 \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}'

応答

応答が成功すると、HTTP ステータス 200が返され、指定した組織のクエリのリストがJSONとして返されます。 次の応答は、組織に対して作成された最新のクエリを返します。

{
    "queries": [
        {
            "isInsertInto": false,
            "request": {
                "dbName": "prod:all",
                "sql": "SELECT *\nFROM\n  accounts\nLIMIT 10\n"
            },
            "state": "SUCCESS",
            "rowCount": 0,
            "errors": [],
            "isCTAS": false,
            "version": 1,
            "id": "9957bd7f-2244-4fd5-91bc-077d7df1d8e5",
            "elapsedTime": 28,
            "updated": "2019-12-06T22:00:17.390Z",
            "client": "Adobe Query Service UI",
            "userId": "{USER_ID}",
            "created": "2019-12-06T22:00:17.362Z",
            "_links": {
                "self": {
                    "href": "https://platform.adobe.io/data/foundation/query/queries/9957bd7f-2244-4fd5-91bc-077d7df1d8e5",
                    "method": "GET"
                },
                "soft_delete": {
                    "href": "https://platform.adobe.io/data/foundation/query/queries/9957bd7f-2244-4fd5-91bc-077d7df1d8e5",
                    "method": "PATCH",
                    "body": "{ \"op\": \"soft_delete\"}"
                },
                "referenced_datasets": [
                    {
                        "id": "5b2bdd32230d4401de87397c",
                        "href": "https://platform.adobe.io/data/foundation/catalog/dataSets/5b2bdd32230d4401de87397c"
                    }
                ]
            }
        }
    ],
    "_page": {
        "orderby": "-created",
        "start": "2019-12-06T22:00:17.362Z",
        "next": "2019-08-01T00:14:21.748Z",
        "count": 1
    },
    "_links": {
        "next": {
            "href": "https://platform.adobe.io/data/foundation/query/queries?orderby=-created&start=2019-08-01T00:14:21.748Z"
        },
        "prev": {
            "href": "https://platform.adobe.io/data/foundation/query/queries?orderby=-created&start=2019-12-06T22:00:17.362Z&isPrevLink=true"
        }
    },
    "version": 1
}

クエリの作成

/queries エンドポイントに POST リクエストをおこなうことで、新しいクエリを作成できます。

API 形式

POST /queries

リクエスト

次のリクエストは、ペイロードにSQL ステートメントが指定された新しいクエリを作成します。

curl -X POST https://platform.adobe.io/data/foundation/query/queries \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}' \
 -d '{
        "dbName": "prod:all",
        "sql": "SELECT account_balance FROM user_data WHERE user_id='$user_id';",
        "queryParameters": {
            user_id : {USER_ID}
            }
        "name": "Sample Query",
        "description": "Sample Description"
    }

次のリクエストの例では、既存のクエリテンプレート IDを使用して新しいクエリを作成します。

curl -X POST https://platform.adobe.io/data/foundation/query/queries \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}' \
 -d '{
        "dbName": "prod:all",
        "templateID": "f7cb5155-29da-4b95-8131-8c5deadfbe7f",
        "name": "Sample Query",
        "description": "Sample Description"
    }
プロパティ
説明
dbName
SQL データベースを作成する対象のクエリの名前。
sql
作成する SQL クエリ。
name
SQL クエリの名前。
description
SQL クエリの説明。
queryParameters
SQL ステートメント内のパラメーター化された値を置き換えるキー値のペア。 指定したSQL内でパラメーターの置換を使用している場合​ のみ必須です。 ​これらのキー値のペアに対して、値タイプのチェックは行われません。
templateId
既存のクエリの一意のID。 SQL文の代わりにこれを指定できます。
insertIntoParameters
(オプション)このプロパティを定義すると、このクエリはINSERT INTO クエリに変換されます。
ctasParameters
(オプション)このプロパティが定義されている場合、このクエリはCTAS クエリに変換されます。

応答

成功応答は HTTP ステータス(許可済み)とともに、作成したクエリの詳細を返します。 クエリのアクティブ化が完了し、正常に実行されたら、stateSUBMITTED から SUCCESS に変更されます。

{
    "isInsertInto": false,
    "request": {
        "dbName": "prod:all",
        "sql": "SELECT * FROM accounts;",
        "name": "Sample Query",
        "description": "Sample Description"
    },
    "state": "SUBMITTED",
    "rowCount": 0,
    "errors": [],
    "isCTAS": false,
    "version": 1,
    "id": "4d64cd49-cf8f-463a-a182-54bccb9954fc",
    "elapsedTime": 0,
    "updated": "2020-01-08T21:47:46.865Z",
    "client": "API",
    "userId": "{USER_ID}",
    "created": "2020-01-08T21:47:46.865Z",
    "_links": {
        "self": {
            "href": "https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc",
            "method": "GET"
        },
        "soft_delete": {
            "href": "https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc",
            "method": "PATCH",
            "body": "{ \"op\": \"soft_delete\"}"
        },
        "cancel": {
            "href": "https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc",
            "method": "PATCH",
            "body": "{ \"op\": \"cancel\"}"
        }
    }
}
NOTE
_links.cancelを使用して、作成したクエリをキャンセル ​できます。

ID によるクエリの取得

特定のクエリに関する詳細な情報を取得するには、/queries エンドポイントに GET リクエストを送信し、リクエストパスにクエリの id の値を指定します。

API 形式

GET /queries/{QUERY_ID}
プロパティ
説明
{QUERY_ID}
取得するクエリの id 値。

リクエスト

curl -X GET https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}'

応答

成功応答は、HTTP ステータス 200 とともに、指定されたクエリに関する詳細な情報を返します。

{
    "isInsertInto": false,
    "request": {
        "dbName": "prod:all",
        "sql": "SELECT * FROM accounts;",
        "name": "Sample Query",
        "description": "Sample Description"
    },
    "state": "SUBMITTED",
    "rowCount": 0,
    "errors": [],
    "isCTAS": false,
    "version": 1,
    "id": "4d64cd49-cf8f-463a-a182-54bccb9954fc",
    "elapsedTime": 0,
    "updated": "2020-01-08T21:47:46.865Z",
    "client": "API",
    "userId": "{USER_ID}",
    "created": "2020-01-08T21:47:46.865Z",
    "_links": {
        "self": {
            "href": "https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc",
            "method": "GET"
        },
        "soft_delete": {
            "href": "https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc",
            "method": "PATCH",
            "body": "{ \"op\": \"soft_delete\"}"
        },
        "cancel": {
            "href": "https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc",
            "method": "PATCH",
            "body": "{ \"op\": \"cancel\"}"
        }
    }
}
NOTE
_links.cancelを使用して、作成したクエリをキャンセル ​できます。

クエリのキャンセルまたはソフト削除

指定されたクエリのキャンセルまたはソフト削除をリクエストするには、/queries エンドポイントに対してPATCH リクエストを行い、そのクエリのid値をリクエストパスに指定します。

API 形式

PATCH /queries/{QUERY_ID}
パラメーター
説明
{QUERY_ID}
操作を実行するクエリのid値。

リクエスト

この API リクエストは、ペイロードに JSON パッチ構文を使用します。 JSON パッチの仕組みについて詳しくは、API の基本ドキュメントを参照してください。

curl -X PATCH https://platform.adobe.io/data/foundation/query/queries/4d64cd49-cf8f-463a-a182-54bccb9954fc \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json',
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}'
 -d '{
   "op": "cancel"
 }'
プロパティ
説明
op
リソースに対して実行する操作のタイプ。 指定できる値は、cancel および soft_delete です。 クエリをキャンセルするには、op パラメーターに値cancelを設定する必要があります。 ソフト削除操作は、GET リクエストでクエリが返されるのを停止しますが、システムから削除することはありません。

応答

成功応答は、HTTP ステータス 202(許可済み)とともに次のメッセージを返します。

{
    "message": "Query cancel request received",
    "statusCode": 202
}
recommendation-more-help
experience-platform-help-query-service