クエリ文で型変換関数を使用して、データを必要な型に変換できます。
次の表に、Simple Log Serviceでサポートされている型変換機能を示します。
分析ステートメントで文字列を使用する場合は、文字列を単一引用符 ('') で囲む必要があります。 囲まれていない文字列または二重引用符 ("") で囲まれている文字列は、フィールド名または列名を示します。 たとえば、'status' はステータス文字列を示し、statusまたは "status" はステータスログフィールドを示します。
関数 | 構文 | 説明 | SQLでサポート | SPLでサポート |
キャスト (タイプとしてx) | xフィールドの値を指定したデータ型に変換します。 cast関数が値の変換に失敗した場合、この関数を使用するクエリ文は失敗します。 | √ | √ | |
try_cast( x as type) | xフィールドの値を指定したデータ型に変換します。 try_cast関数が値の変換に失敗した場合、関数はNULLを返します。 この関数を使用するクエリ文は、値をスキップして実行を続行します。 説明 ログにダーティデータが含まれる場合があります。 ログを照会するときは、try_cast関数を使用することを推奨します。 このように、変換が失敗すると、クエリステートメントが失敗することはありません。 | √ | × | |
typeof( x) | xフィールドのデータ型を返します。 | √ | × |
キャスト関数
cast関数は、xフィールドの値を指定されたデータ型に変換します。 cast関数が値の変換に失敗した場合、この関数を使用するクエリ文は失敗します。
構文
cast(x as type)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は任意のデータ型です。 |
タイプ | このパラメーターの値はSQLデータ型です。 有効な値: bigint、varchar、double、boolean、timestamp、decimal、array、map。 例: 各SQLデータ型は、Simple Log Serviceインデックスで使用できるデータ型にマップされます。 詳細については、「付録: データ型マッピング」をご参照ください。 |
戻り値のデータ型
typeパラメーターで指定されたデータ型。
例
SQL
数値1をブール型に変換します。
クエリ文
* | select cast(1 as boolean)
クエリと分析結果
SPL
数値1をブール型に変換します。
クエリ文
* | extend a = cast(1 as boolean)
クエリと分析結果
try_cast関数
try_cast関数は、xフィールドの値を指定されたデータ型に変換します。 try_cast関数が値の変換に失敗した場合、関数はNULLを返します。 この関数を使用するクエリ文は、値をスキップして実行を続行します。
構文
try_cast(x as type)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は任意のデータ型です。 |
タイプ | このパラメーターの値はSQLデータ型です。 有効な値: bigint、varchar、double、boolean、timestamp、decimal、array、map。 例: 各SQLデータ型は、Simple Log Serviceインデックスで使用できるデータ型にマップされます。 詳細については、「付録: データ型マッピング」をご参照ください。 |
戻り値のデータ型
typeパラメーターで指定されたデータ型。
例
uidフィールドの値をvarchar型に変換します。
クエリ文
* | select try_cast(uid as varchar)
クエリと分析結果
typeof関数
typeof関数は、xフィールドのデータ型を返します。
構文
typeof(x)
パラメーター
パラメーター | 説明 |
x | このパラメーターの値は任意のデータ型です。 |
戻り値のデータ型
varcharタイプ。
例
request_timeフィールドのデータ型を取得します。
クエリ文
* | SELECT typeof(request_time)
クエリと分析結果
付録: データ型マッピング
次の表に、SQLデータ型とSimple Log Serviceインデックスでサポートされているデータ型の間のマッピングを示します。
Simple Log Serviceインデックスでサポートされているデータ型 | SQLデータ型 |
long | bigint |
text | varchar |
double | double |
JSON | varchar |