この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

クエリのパフォーマンス

パフォーマンスを最適化するには、クエリを構造化して、SAQL クエリが通過する、さまざまなフェーズを利用する方法を習得してください。

バックグラウンドで実行されること

SAQL は Salesforce Analytics Query Language の略語です。Analytics でアクションを実行すると、多くの場合、SAQL クエリが 1 つ以上生成されます。すべてのレンズ、ダッシュボード、エクスプローラでのアクションにより、SAQL ステートメントが生成されて実行され、表示に必要なデータが構築されます。

SAQL は Apache Pig-Latin (pigql) 構文の影響を受けますが、実装は異なり、互換性はありません。

ヒント

Analytics がステップ、ウィジェット、レイアウトを評価してダッシュボードを表示するときには、次のようなことが実行されます。
  • 小さいステップが自動ファセットされます。つまり、相互に関連する、さまざまなウィジェットがリンクされます。

  • バインドとテンプレートが解決されます。

  • すべてのステップが SAQL クエリに変換されます。

SAQL クエリはクエリエンジンに送信されて実行されます。生成されるデータは Charting ライブラリに渡されて、対応するウィジェット定義が使用されて表示されます。

コンポーネントの適合方法 クライアントコンポーネントとサーバコンポーネントとの間でスタイル設定されたリレーションを示す図

開発者は、Analytics REST API によって、またはダッシュボード JSON に含まれる SAQL クエリの作成や編集を行うことによって SAQL を記述し、Analytics データにアクセスできます。

SAQL クエリは、入力データセットを読み込み、そのデータセットに対して操作を実行し、結果のデータセットを出力します。各 SAQL ステートメント (filter、group、order などの予約キーワード) には、入力ストリーム、操作、出力ストリームがあります。ステートメントは複数行にわたることができ、セミコロンで終了します。

各クエリ行は指定ストリームに割り当てられます。指定ストリームは、同一クエリの後続ステートメントの入力として使用できます。このルールの唯一の例外は、明示的な割り当てが不要なクエリの最終行です。

クエリは一般的に数ステップ、つまりレイヤを通過し、要求されたデータを JSON として返します。このジャーニーが始まるクエリエンジンコードは、非常に高速に実行されるように設計されており、データも非常に効率的にインデックス設定されるため、クエリ操作 (filter、group、foreach など) は高度に最適化されます。

クエリが通過する論理レイヤ 論理レイヤを示す図

その後、データは本質的に表形式になるため、filter、(co)group、foreach、union などの主なクエリ操作はあまり最適化されず、さらなる処理、つまり「力ずく」の方法が必要となります。

SAQL は一般的に、派生基準またはディメンションを作成するために使用します。既存の列に基づく計算を利用し、新しい列を作成できると言うこともできます。これらの計算は、2 つの基準を加算したり、2 つのディメンションを連結したりというように、非常に単純であることもあれば、非常に複雑になることもあります。

次のトピックでは、問題となるクエリ設計の一般的な原因について説明します。