ここでは、Spark SQL の STREAM 構文について説明します。 STREAM 構文は、E-MapReduce 3.23.0 以降のバージョンで使用可能です。

STREAM 構文が必要な理由

ストリーミングクエリを実行する前には、checkpointLocation や outputMode など、writeStream で必要とされるパラメーターを設定する必要があります。 現在、SET 構文を使用することで、queryName パラメーターで指定したクエリにこれらのパラメーターを設定できます。 ただし、この方法にはいくつかの制限事項があります。 たとえば、クエリを実行する前にパラメーターを設定する必要があります。 使いやすさを向上するために、E-MapReduce には、writeStream で必要とされるパラメーターを設定するための STREAM 構文が用意されています。

注意:E-MapReduce は、SET と STREAM の両方の構文で writeStream で必要とされるパラメーターを設定することができます。

構文

CREATE STREAM queryName
OPTIONS (propertyName=propertyValue[,propertyName=propertyValue]*)
INSERT INTO tbName
queryStatement;

次の表に、writeStream で必要なパラメーターを示します。

パラメーター 説明 デフォルト値
checkpointLocation ストリーミングクエリジョブ用のチェックポイントのディレクトリ。 なし
outputMode クエリ結果の出力モード。 Append
triggerType ストリーミングクエリの実行モード。 ProcessingTime
triggerIntervalMs ストリーミングクエリの間隔。 単位:ミリ秒。 0

CREATE STREAM job1
OPTIONS(
checkpointLocation='/tmp/spark',
outputMode='Append',
triggerType='ProcessingTime'
triggerIntervalMs='3000')
INSERT INTO LargeOrders
SELECT * FROM Orders WHERE units > 1000;