標準 SQL では、データ量が多い場合に不完全なクエリ結果が返されることがあります。専用 SQL では、コンピューティングリソースを追加して単一クエリのパフォーマンスを向上させ、データ量制限を引き上げます。
専用 SQL を使用する理由
標準クエリの制限
標準クエリには、大規模データに対して次の制限があります:
-
不正確な結果:リソース制限 (タイムスライス、I/O、データ量) によりデータをすべて読み込めない場合があり、統計精度に影響します。
-
パフォーマンスボトルネック:単一シャードがサポートするデータは 400 MB のみであり、TB レベルのログ分析や高同時実行のシナリオが制限されます。
-
リソース競合:複数テナントでリソースを共有するため、競合が発生します。
専用 SQL のコアバリュー
拡張モード:高パフォーマンスと高同時実行
拡張モードは、リアルタイムのパフォーマンスと高同時実行を対象としています:
-
パフォーマンス:単一ノードで最大 2 GB のデータを処理でき、最大 100 件の同時クエリを実行できます。
-
代表的なシナリオ:API 成功率アラート、リアルタイムモニタリング、高同時実行のポイントクエリ。
フル精度モード
フル精度モードは、正確な結果が必要なシナリオを対象としています:
-
ゼロエラー保証:時間と引き換えにリソースを投入し、データが完全に読み込まれることを保証します。
-
専用リソース:タスクが完了するかタイムアウトが発生するまで、安定した実行を保証します。
-
代表的なシナリオ:財務照合、セキュリティ監査、超長期間の分析、大規模なトレンド分析。
SQL クエリの最大実行時間は 55 秒で、最大同時実行数は 5 です。
|
観点 |
拡張モード |
フル精度モード |
|
コア目標 |
パフォーマンスの高速化 |
結果精度 |
|
リソースポリシー |
共有リソースプールとエラスティックスケーリング |
専用リソースプールと精度のための時間トレードオフ |
|
代表的なシナリオ |
リアルタイムモニタリングと高同時実行分析 |
財務照合、セキュリティ監査、超長期間の分析、大規模なトレンド分析などの厳密な分析シナリオ。 |
|
許容精度 |
限定的な誤差を許容 |
誤差ゼロが必須 |
専用 SQL の仕組み
SQL 拡張
Simple Log Service (SLS) のデータは シャード に保存されます。各シャードの処理能力には上限があります。データ量が多すぎると、クエリが切り捨てられる場合があります。シャードを追加するとスループットは向上しますが、新規データに対してのみ有効であり、リアルタイム消費クライアントも増加します。SQL 拡張 は、コンピューティングリソースを動的にスケールして分析を改善します。代表的なシナリオは次のとおりです:
-
高性能な分析を必要とするリアルタイムデータ分析。
-
月次データ分析などの長期間の分析。
-
数千億行規模の大規模分析。
-
多次元レポートやポイントクエリなどの高同時実行分析 (同時実行 SQL クエリが 15 件超)。
SQL 完全精度
大規模分析では、次の要因によりデータの読み込みが中断される場合があります:
-
タイムスライスの枯渇:割り当てられた時間リソースが不足します。
-
データ量のしきい値:読み込まれたデータの総量が上限を超えます。
-
行数のしきい値:読み込まれた行数が上限を超えます。
-
I/O のしきい値:ディスク読み取りが上限を超えます。
このような中断により、データを完全に読み込めず、結果精度に影響する場合があります。SQL 完全精度 はこれらの問題を解決します。代表的なシナリオは次のとおりです:
-
ビジネスのモニタリングとアラート:重要なモニタリングでは、正確な分析結果が必要です。
-
事業運営分析:収益、財務、リテンション、コンバージョンに関わる主要指標分析。
-
オンラインデータサービス:外部ユーザーに提供する SQL 結果で、完全な精度が求められる場合。
課金情報
料金は、SQL 分析に使用された実際の CPU 時間に基づいて計算されます。単位はコア時で、これは 1 つの CPU コアの計算リソースを 1 時間排他的に使用するコストを表します。詳細については、「専用 SQL の課金例」をご参照ください。
従量課金:専用 SQL 料金 = CPU 時間 (時間) × 1 時間あたりの単価
リソースプラン:前払いリソースプラン。控除のためにリソースクレジット (CU) に変換されます。
制限事項
|
制限 |
汎用インスタンス |
専用 SQL |
|
|
SQL 拡張 |
フル精度 |
||
|
同時実行数 |
プロジェクトあたり最大 15 件の同時クエリ。 |
プロジェクトあたり最大 100 件の同時クエリ。 |
プロジェクトあたり最大 5 件の同時クエリ。 |
|
データ量 |
クエリあたり最大 400 MB (キャッシュデータを除く)。超過したデータは切り捨てられ、不完全なクエリ結果 マーカーが付与されます。 |
クエリあたり最大 2 GB (キャッシュデータを除く)。超過したデータは切り捨てられ、不完全なクエリ結果 マーカーが付与されます。 |
無制限。 |
|
モードの有効化 |
デフォルトで有効です。 |
トグルで有効化します。SQL 拡張。 |
トグルで有効化します。SQL 完全精度。 |
|
料金 |
無料。 |
実際に使用した CPU 時間に基づいて課金されます。 |
実際に使用した CPU 時間に基づいて課金されます。 |
|
データの有効範囲 |
この機能を有効化した後に書き込まれたデータにのみ適用されます。 過去データを分析するには、データを 再インデックス する必要があります。 |
この機能を有効化した後に書き込まれたデータにのみ適用されます。 過去データを分析するには、データを 再インデックス する必要があります。 |
この機能を有効化した後に書き込まれたデータにのみ適用されます。 過去データを分析するには、データを 再インデックス する必要があります。 |
|
結果の返却 |
デフォルトでは、クエリは最大 100 行および 100 MB を返します。100 MB を超えるクエリはエラーになります。 より多くのデータを返すには、LIMIT 句 を使用します。 |
デフォルトでは、クエリは最大 100 行および 100 MB を返します。100 MB を超えるクエリはエラーになります。 より多くのデータを返すには、LIMIT 句 を使用します。 |
デフォルトでは、クエリは最大 100 行および 100 MB を返します。100 MB を超えるクエリはエラーになります。 より多くのデータを返すには、LIMIT 句 を使用します。 |
|
フィールド値サイズ |
デフォルトのフィールド値の最大長は 2 KB (2,048 バイト) で、最大 16 KB (16,384 バイト) まで設定できます。上限を超えるコンテンツは、分析と検索の対象外になります。 説明
制限を変更するには、[テキストフィールドの最大長] を設定します。更新後の設定は増分データにのみ適用されます。インデックスを作成。 |
デフォルトのフィールド値の最大長は 2 KB (2,048 バイト) で、最大 16 KB (16,384 バイト) まで設定できます。上限を超えるコンテンツは、分析と検索の対象外になります。 説明
制限を変更するには、[テキストフィールドの最大長] を設定します。更新後の設定は増分データにのみ適用されます。インデックスを作成。 |
デフォルトのフィールド値の最大長は 2 KB (2,048 バイト) で、最大 16 KB (16,384 バイト) まで設定できます。上限を超えるコンテンツは、分析と検索の対象外になります。 説明
制限を変更するには、[テキストフィールドの最大長] を設定します。更新後の設定は増分データにのみ適用されます。インデックスを作成。 |
|
タイムアウト期間 |
最大タイムアウト:55 秒。 |
最大タイムアウト:55 秒。 |
最大タイムアウト:55 秒。 |
|
double 型のフィールド値のビット数 |
double 型のフィールド値は最大 52 ビットです。 52 ビットを超えてエンコードされた浮動小数点数は精度が失われます。 |
double 型のフィールド値は最大 52 ビットです。 52 ビットを超えてエンコードされた浮動小数点数は精度が失われます。 |
double 型のフィールド値は最大 52 ビットです。 52 ビットを超えてエンコードされた浮動小数点数は精度が失われます。 |