如果您在查詢與分析數據時需要區分更細維度的數據類型,您可以在查詢與分析語句中使用類型轉換函數轉換數據的數據類型。
日志服務支持如下類型轉換函數。
函數名稱 | 語法 | 說明 | 支持SQL | 支持SPL |
cast(x as type) | 轉換x的數據類型。 使用cast函數轉換數據類型時,如果某個值轉換失敗,將終止整個查詢與分析操作。 | √ | √ | |
try_cast(x as type) | 轉換x的數據類型。 使用try_cast函數轉換數據類型時,如果某個值轉換失敗,該值返回NULL,并跳過該值繼續處理。 說明 日志中可能有臟數據,建議使用try_cast函數,避免因臟數據造成整個查詢與分析操作失敗。 | √ | × | |
typeof(x) | 返回x的數據類型。 | √ | × |
cast函數
cast函數用于轉換x的數據類型。使用cast函數轉換數據類型時,如果某個值轉換失敗,將終止整個查詢與分析操作。
語法
cast(x as type)
參數說明
參數 | 說明 |
x | 參數值可以為任意類型。 |
type | SQL數據類型,可選值為bigint、varchar、double、boolean、timestamp、decimal、array或map。 例如 索引數據類型和SQL數據類型的映射關系,請參見附錄:數據類型映射關系。 |
返回值類型
由您配置的type參數決定。
示例
SQL
將數字1轉換為boolean格式。
查詢和分析語句
* | select cast(1 as boolean)
查詢和分析結果
SPL
將數字1轉換為boolean格式。
查詢和分析語句
* | extend a = cast(1 as boolean)
查詢和分析結果
try_cast函數
try_cast函數用于轉換x的數據類型。使用try_cast函數轉換數據類型時,如果某個值轉換失敗,該值返回NULL,并跳過該值繼續處理。
語法
try_cast(x as type)
參數說明
參數 | 說明 |
x | 參數值可以為任意類型。 |
type | SQL數據類型,可選值為bigint、varchar、double、boolean、timestamp、decimal、array或map。 例如 索引數據類型和SQL數據類型的映射關系,請參見附錄:數據類型映射關系。 |
返回值類型
由您配置的type參數決定。
示例
將uid字段值轉換為varchar類型。
查詢和分析語句
* | select try_cast(uid as varchar)
查詢和分析結果
typeof函數
typeof函數用于返回x的數據類型。
語法
typeof(x)
參數說明
參數 | 說明 |
x | 參數值可以為任意數據類型。 |
返回值類型
varchar類型。
示例
判斷request_time字段值的數據類型。
查詢和分析語句
* |SELECT typeof(request_time)
查詢和分析結果
附錄:數據類型映射關系
索引數據類型和SQL數據類型的對應關系如下表所示:
索引的數據類型 | SQL的數據類型 |
long | bigint |
text | varchar |
double | double |
json | varchar |