標準 SQL では、大量のデータに対して不完全な結果が返される場合があります。専用 SQL は、コンピューティングリソースを追加することで、単一クエリのパフォーマンスを向上させ、データ量の上限を引き上げます。
専用 SQL を使用する理由
標準クエリの制限事項
大規模データを扱う場合、標準クエリには以下の制限があります。
-
不正確な結果:リソース制限 (タイムスライス、I/O、データ量) により、データを完全に読み込めない場合があり、統計の精度に影響します。
-
パフォーマンスボトルネック:単一のシャードでは 400 MB のデータのみをサポートするため、TB レベルのログ分析や同時実行性の高いシナリオが制限されます。
-
リソース競合:複数のテナントがリソースを共有するため、競合が発生します。
専用 SQL の主な特長
拡張モード:高性能と高同時実行性
拡張モードは、リアルタイムパフォーマンスと高同時実行性を目的としています。
-
パフォーマンス:単一ノードで最大 2 GB のデータを処理し、最大 100 件の同時クエリに対応します。
-
一般的なシナリオ:API 成功率アラート、リアルタイム監視、同時実行性の高いポイントクエリ。
フル精度モード
フル精度モードは、正確な結果が必要なシナリオを対象としています。
-
ゼロエラー保証:時間をかけてリソースを確保することで、データが完全に読み込まれることを保証します。
-
専用リソース:タスクが完了するか、タイムアウトが発生するまで安定した動作を保証します。
-
一般的なシナリオ:財務照合、セキュリティ監査、超長期間分析、大規模なトレンド分析。
SQL クエリの最大実行時間は 55 秒で、最大同時実行数は 5 です。
|
項目 |
拡張モード |
フル精度モード |
|
主な目的 |
パフォーマンスの高速化 |
結果の正確性 |
|
リソースポリシー |
共有リソースプールと弾性スケーリング |
専用リソースプールと時間と精度のトレードオフ |
|
一般的なシナリオ |
リアルタイム監視と同時実行性の高い分析 |
財務照合、セキュリティ監査、超長期間分析、大規模なトレンド分析などの厳密な分析シナリオ。 |
|
精度の許容範囲 |
限定的なエラーが許容されます |
ゼロエラーが必要です |
専用 SQL の仕組み
SQL 拡張
Simple Log Service (SLS) のデータはシャードに保存されます。各シャードの処理能力には限界があり、データ量が多すぎる場合、クエリが切り捨てられる可能性があります。シャードを追加すると、スループットは向上しますが、新しいデータに対してのみ有効であり、リアルタイム消費クライアントが増えます。SQL 拡張は、コンピューティングリソースを動的にスケールして分析を改善します。一般的なシナリオ:
-
高性能な分析が求められるリアルタイムデータ分析。
-
月次データ分析などの長期間分析。
-
数千億行の大規模分析。
-
多次元レポートやポイントクエリなどの同時実行性の高い分析 (15 を超える同時 SQL クエリ)。
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 ビットを超えてエンコードされた浮動小数点数は、精度が失われます。 |