標準SQL機能を使用して大量のデータを分析する場合、指定された時間範囲内のログを完全にスキャンすることはできません。 この場合、返される分析結果にすべての一致データが含まれているとは限りません。 シャードの数を増やして、データの読み取りおよび書き込み機能を向上させることができます。 ただし、この方法は増分データに対してのみ有効です。 専用SQL機能を有効にすると、コンピューティングリソースと、1回のクエリ要求で分析できるデータ量を増やすことができます。 このトピックでは、Dedicated SQLを有効にする方法について説明します。
前提条件
標準ログストアが作成されます。 詳細については、「Logstore の作成」をご参照ください。
ログが収集されていること。 詳細については、「データ収集の概要」をご参照ください。
インデックスが設定されます。 詳細は、「インデックスの設定」をご参照ください。
背景情報
Simple Log Serviceのデータはシャードに保存されます。 詳細については、「シャードの管理」をご参照ください。 Simple Log Serviceは、Logstore、Eventstore、およびMetricstoreのデータ読み書き機能を管理するために、各シャードでスキャンできるデータ量を制限します。 標準SQL機能を使用して大量のデータを分析する場合、Simple Log Serviceは一部の一致した結果のみを返すことができます。 シャードの数を増やして、データの読み取りおよび書き込み機能を向上させることができます。 ただし、この方法は増分データに対してのみ有効です。 消費者の数も増加します。 詳細については、「リアルタイム消費の概要」をご参照ください。 専用SQL機能は、より強力なSQL分析機能を提供します。 この機能は、次のシナリオで使用できます。
高いパフォーマンスでデータを分析する必要があります。 たとえば、データをリアルタイムで分析する必要があります。
長期間にわたって生成されたデータを分析する必要があります。 たとえば、1か月にわたって生成されたデータを分析する必要があります。
大量のデータを分析する必要があります。 たとえば、数千億行のデータを分析する必要があります。
15を超える同時SQL文を使用してデータを分析し、複数のディメンションからの複数のメトリックに基づいて分析結果を表示する必要があります。
Dedicated SQLとStandard SQLの比較については、「ログ分析の概要」をご参照ください。
課金
料金は、クエリおよび分析操作の実行時に消費された CPU 時間に基づいて計算されます。 単位:コア時間。 この単位は、1 つのコアを 1 時間使用する際の料金を表します。 詳細については、「課金例」をご参照ください。
従量課金:専用 SQL の日次料金 = 時間単位で計算される CPU 時間 × 1 時間あたりの料金。
リソースプラン: プリペイトリソースプランは、請求可能アイテムのCUに基づいて請求可能アイテムの料金を相殺するために使用されます。
手順
Simple Log Serviceは、専用SQL機能を有効にするために次の方法をサポートしています。
1回有効化: Logstoreでクエリ文を実行するときは、Dedicated SQLを有効にします。 専用SQL機能は、現在のLogstoreで実行するクエリ文に対してのみ有効です。
永久有効化: デフォルトで有効化をオンにすると、専用SQL機能は現在のプロジェクトで有効になり、アラートやダッシュボードのクエリステートメントを含め、プロジェクトで実行するすべてのクエリステートメントに対して有効になります。
1回有効化
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
左側のナビゲーションウィンドウで、[ログストレージ] をクリックします。 Logstoreリストで、管理するLogstoreをクリックします。
をクリックします。
永久に有効にする
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
アイコンをクリックします。
[CUs of SQL-dedicated Instance] パラメーターにポインターを移動し、[変更] をクリックします。
[SQL専用インスタンスのCUの変更] パネルで、[デフォルトで有効化] をオンにし、[OK] をクリックします。
SDK サンプル
よくある質問
API操作を呼び出してDedicated SQL機能を有効にするにはどうすればよいですか?
GetLogs操作を呼び出すことで、Dedicated SQL機能を有効にできます。 この操作を呼び出すときに、powerSqlまたはqueryパラメーターを使用して、専用SQL機能を有効にするかどうかを指定できます。 詳細については、「GetLogs」をご参照ください。
使用するCPU時間の量を取得するにはどうすればよいですか?
分析およびクエリ操作を実行した後、[分析結果] にポインターを移動して、使用したCPU時間を表示できます。 以下の図は一例です。
専用SQL機能のコストを管理できますか?
はい。計算ユニット (CU) の数を変更して、Dedicated SQL機能のコストを制御できます。 CUの数を変更するには、プロジェクトの [プロジェクトの概要] ページに移動し、[CUs of SQL-dedicated Instance] パラメーターの値を変更します。
説明専用SQL機能を使用すると、CUは並行して使用されます。
クエリ文を1回実行すると、専用SQL機能の料金はいくらですか。
専用SQL機能の料金は、クエリ文を実行するデータの量によって異なります。 次の表に例を示します。
クエリ文
データ量 (行)
実行あたりの平均コスト (USD)
* | select avg(double_0) from stress_s1_mil1
40億
0.004435
* | select avg(double_0), sum(double_0), max(double_0), min(double_0), count(double_0) from stress_s1_mil1
40億
0.006504
* | select avg(double_0), sum(double_1), max(double_2), min(double_3), count(double_4) from stress_s1_mil1
40億
0.013600
* | select key_0 , avg(double_0) as pv from stress_s1_mil1 group by key_0 order by pv desc limit 1000
40億
0.011826
* | select long_0, avg(double_0) as pv from stress_s1_mil1 group by long_0 order by pv desc limit 1000
40億
0.011087
* | select long_0, long_1, avg(double_0) as pv from stress_s1_mil1グループby long_0, long_1 order by pv desc limit 1000
0.3億
0.010791
* | select avg(double_0) from stress_s1_mil1 where key_0='key_987 '
40億
0.00007