[Azure Stream Analytics] TRY_CAST の利用
BI Data Platform (SQL Server) Support Team 山崎実久
Azure Stream Analytics のジョブを実行中、SQL Database への出力が行われず、以下のようにデータ型変換の警告が表示される場合があります。
Warning の抜粋
---------------------
Encountered error trying to write 1 event(s): Cannot convert from property 'c2' of type 'System.String' to column 'c2' of type 'System.DateTime
---------------------
Azure Stream Analytics では、”Error Policy” が既定の “Retry” に設定されている場合、出力になんらかのエラーが出ると、job をリトライし続けます。その結果、何度も入力のデータを参照することになり、Input Events は上昇し、リソースの利用状況を表す SU % Utilization もそれに伴い上昇します。最終的にリソースを使い切り、ジョブが停止することがあります。
不正な入力データが発生しない対処を行うのが一番ですが、このデータ型変換エラーが発生するような入力が来た場合もエラーを回避し出力を行うために、以下のように Azure Stream Analytics のクエリに TRY_CAST の関数を追加する対応をとることができます。
TRY_CAST() を利用することで、CAST のエラーをハンドリングすることができます。TRY_CAST() では、キャストが成功した場合は指定されたデータ型にキャスト値を返します。それ以外の場合は NULL を返します。
(例)
---------------------
SELECT
c1,
TRY_CAST(c2 as datetime) as c2
INTO
[sqldbout]
FROM
[blobin]
---------------------
+ 参考情報
TRY_CAST (Azure Stream Analytics)
“https://msdn.microsoft.com/library/en-us/Mt643735.aspx”
※ 本ブログの内容は、2017年12月時点の情報です。
以上、お役に立てたら幸いです。