次の方法で共有


コマーシャル マーケットプレースのカスタム クエリ仕様

パートナーは、このクエリの仕様を使用して、分析テーブルからデータを抽出するためのカスタム クエリを簡単に作成できます。 クエリを使用すると、特定の条件に一致する目的の列とメトリックのみを選択できます。 言語仕様の中核となるのは、カスタム クエリを記述する基礎となるデータセット定義です。

データセット

テーブルと列を含むデータベースに対して一部のクエリが実行されるのと同じように、カスタム クエリは列とメトリックを持つデータセットに対して動作します。 クエリを作成するために使用できるデータセットの完全な一覧は、データセット API を使用して取得できます。

JSON として表示されるデータセットの例を次に示します。

{
            "datasetName": "ISVUsage",
            "selectableColumns": [
                "MarketplaceSubscriptionId",
                "MonthStartDate",
                "OfferType",
                "AzureLicenseType",
                "MarketplaceLicenseType",
                "SKU",
                "CustomerCountry",
                "IsPreviewSKU",
                "SKUBillingType",
                "VMSize",
                "CloudInstanceName",
                "OfferName",
                "IsPrivateOffer",
                "DeploymentMethod",
                "CustomerName",
                "CustomerCompanyName",
                "UsageDate",
                "IsNewCustomer",
                "CoreSize",
                "TrialEndDate",
                "CustomerCurrencyCC",
                "PriceCC",
                "PayoutCurrencyPC",
                "EstimatedPricePC",
                "UsageReference",
                "UsageUnit",
                "CustomerId",
                "BillingAccountId",
                "MeterDimension",
                "MeterId",
                "PartnerCenterDetectedAnomaly",
                "PublisherMarkedAnomaly",
                "NewReportedUsage",
                "ActionTakenAt",
                "ActionTakenBy",
                "PlanId",
                "ReferenceId",
                "ListPriceUSD",
                "DiscountedPriceUSD",
                "IsPrivatePlan",
                "OfferId",
                "PrivateOfferId",
                "PrivateOfferName",
                "BillingId",
                "PlanType",
                "CustomerAccess",
                "PublisherAccess",
                "CustomerAdjustmentUSD",
                "MultiParty",
                "PartnerInfo",
                "SalesNotes",
                "IsCustomMeter",
                "AssetId",
                "IsMultisolution",
                "VMSubscription"
            ],
            "availableMetrics": [
                "NormalizedUsage",
                "MeteredUsage",
                "RawUsage",
                "EstimatedExtendedChargeCC",
                "EstimatedExtendedChargePC",
                "EstimatedFinancialImpactUSD"
            ],
            "availableDateRanges": [
                "LAST_MONTH",
                "LAST_3_MONTHS",
                "LAST_6_MONTHS",
                "LAST_1_YEAR",
                "LAST_3_YEARS"
            ],
            "minimumRecurrenceInterval": 1
        }

データセットの各部分

  • データセット名は、データベース テーブル名に似ています。 たとえば、ISVUsage のようになります。 データセットには、MarketplaceSubscriptionId など、選択できる列の一覧があります。
  • データセットには、データベース内の集計関数に似たメトリックもあります。 たとえば、NormalizedUsage のようになります。
  • データをエクスポートできる一定の期間があります。

データセットに対するクエリの作成

これらは、さまざまな種類のデータを抽出する方法を示すサンプル クエリです。

クエリ 説明
SELECT MarketplaceSubscriptionId,CustomerId FROM ISVUsage TIMESPAN LAST_MONTH このクエリは、過去 1 か月間のすべての MarketplaceSubscriptionId とそれに対応する CustomerId を取得します。
SELECT MarketplaceSubscriptionId, EstimatedExtendedChargeCC FROM ISVUsage ORDER BY EstimatedExtendedChargeCC LIMIT 10 このクエリでは、上位 10 個のサブスクリプションを取得し、各サブスクリプションで販売されたライセンスの数を減らします。
SELECT CustomerId, NormalizedUsage, RawUsage FROM ISVUsage WHERE NormalizedUsage > 100000 ORDER BY NormalizedUsage TIMESPAN LAST_6_MONTHS このクエリは、NormalizedUsage が 100,000 を超えるすべての顧客の NormalizedUsage と RawUsage を取得します。
SELECT MarketplaceSubscriptionId, MonthStartDate, NormalizedUsage FROM ISVUsage WHERE CustomerId IN ('2a31c234-1f4e-4c60-909e-76d234f93161', '80780748-3f9a-11eb-b378-0242ac130002') このクエリは、2a31c234-1f4e-4c60-909e-76d234f9316180780748-3f9a-11eb-b378-0242ac130002の 2 つのCustomerId値によって、毎月のMarketplaceSubscriptionIdと正規化された使用状況を取得します。

クエリの仕様

このセクションでは、クエリの定義と構造について説明します。

文法リファレンス

この表では、クエリで使用される記号を説明します。

シンボル 意味
? 省略可能
* 0 個以上
+ 1 個以上
| または/リストの中の 1 つ

[クエリ定義]

クエリ ステートメントには、SelectClause、FromClause、WhereClause、OrderClause、LimitClause、および TimeSpan の各句があります。

  • SelectClause: SELECT ColumOrMetricName (, ColumOrMetricName)*
    • ColumOrMetricName: データセット内で定義される列とメトリック
  • FromClause: FROM DatasetName
    • DatasetName: データセット内で定義されるデータセット名
  • WhereClause: WHERE FilterCondition (AND FilterCondition)*
    • FilterCondition: ColumOrMetricName 演算子値
      • Operator: = | > | < | >= | <= | != | LIKE | NOT LIKE | IN | NOT IN
      • : 数値 |StringLiteral |MultiNumberList |MultiStringList
        • Number: -? [0-9]+ (. [0-9] [0-9]*)?
        • StringLiteral: ' [a-zA-Z0-9_]*'
        • MultiNumberList: (Number (,Number)*)
        • MultiStringList: (StringLiteral (,StringLiteral)*)
  • OrderClause: ORDER BY OrderCondition (,OrderCondition)*
    • OrderCondition: ColumOrMetricName (ASC | DESC)*
  • LimitClause: LIMIT [0-9]+
  • TimeSpan: TIMESPAN ( TODAY |昨日 |LAST_7_DAYS |LAST_14_DAYS |LAST_30_DAYS |LAST_90_DAYS |LAST_180_DAYS |LAST_365_DAYS |LAST_MONTH |LAST_3_MONTHS |LAST_6_MONTHS |LAST_1_YEAR)

クエリ構造

レポート クエリは次の複数の部分で構成されます。

  • 選択
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT
  • TIMESPAN

各部分について、下で説明します。

選択

クエリのこの部分では、エクスポートされる列を指定します。 選択できる列は、データセットの selectableColumnsavailableMetrics のセクションに一覧表示されているフィールドです。 選択したフィールド リストにメトリック列が含まれている場合、メトリックは、非メトリック列の個別の組み合わせごとに計算されます。

例:

  • SELECT OfferName, NormalizedUsage

DISTINCT

SELECT の後に DISTINCT キーワードを追加すると、エクスポートされた最終的なデータに重複する行がないようにします。 DISTINCT キーワードは、メトリック列が選択されているかどうかに関係なく機能します。

例:

  • SELECT DISTINCT MarketplaceSubscriptionId, OfferType

FROM

クエリのこの部分は、データをエクスポートする必要があるデータセットを示します。 ここで指定するデータセット名は、データセット API によって返される有効なデータセット名である必要があります。

例:

  • FROM ISVUsage
  • FROM ISVOrder

WHERE

クエリのこの部分は、データセットのフィルター条件を指定するために使用されます。 この句に記載されているすべての条件に一致する行のみが、エクスポートされた最終的なファイルに存在します。 フィルター条件は、selectableColumns および availableMetrics にリストされている任意の列に設定できます。 演算子が IN または NOT IN の場合、フィルター条件に指定する値は、数値のリストまたは文字列のリストにのみすることができます。 値は常にリテラル文字列として指定でき、ネイティブ型の列に変換されます。 複数のフィルター条件は、AND 演算子で区切る必要があります。

例:

  • MarketplaceSubscriptionId = '868368da-957d-4959-8992-3c12dc7e6260'
  • CustomerName LIKE '%Contosso%'
  • CustomerId NOT IN (1000, 1001, 1002)
  • OrderQuantity=100
  • OrderQuantity='100'
  • MarketplaceSubscriptionId='7b487ac0-ce12-b732-dcd6-91a1e4e74a50' AND CustomerId=' 0f8b7fa0-eb83-a183-1225-ca153ef807aa'

ORDER BY

クエリのこの部分では、エクスポートされる行の順序付け条件を指定します。 順序を定義できる列は、データセットの selectableColumns および availableMetrics からのものである必要があります。 順序指定の方向が指定されていない場合、既定では列に DESC されます。 条件をコンマで区切ることで、複数の列に対して順序付けを定義できます。

例:

  • ORDER BY NormalizedUsage ASC, EstimatedExtendedCharge(CC) DESC
  • ORDER BY CustomerName ASC, NormalizedUsage

LIMIT

クエリのこの部分では、エクスポートされる行の数を指定します。 指定する数値は、0 以外の正の整数である必要があります。

TIMESPAN

クエリのこの部分では、データをエクスポートする必要がある期間を指定します。 使用可能な値は、データセット定義の availableDateRanges フィールドから指定する必要があります。

クエリの仕様における大文字と小文字の区別

この仕様では、大文字と小文字はいっさい区別されません。 定義済みのキーワードや列の名前および値は、大文字または小文字を使用して指定できます。

関連項目