2017-07-12 33 views
2

私は1つのASAジョブを作成しても、一つの入力エイリアスと1つの出力エイリアス
like thisAzure Stream Analytics複数の出力テーブルを処理する方法は?

作成され、私はSQLデータベース内のテーブルを作成した。この

WITH 
[StreamData] 
AS (
SELECT 
    employee_id, 
    first_name, 
    last_name, 
    age, 
    salary 
FROM 
    [DeviceDataStream] 
WHERE 
    [ObjectType] IS NULL -- Filter out device info and command responses 
) 

SELECT 
    employee_id, 
    first_name, 
    last_name, 
    age, 
    salary 
INTO 
    [Telemetry] 
FROM 
    [StreamData] 

ようなクエリのセクションを編集した
like this

とIOTデバイスからの私の入力はこのようなものです

{"employee_id":4,"first_name":"Joseph","last_name":"Marshal","age":34,"salary":890000} 

これまでのところすべて正常に動作しています。

今私はtypeに基づいて別のテーブルに私の入力JSONを保存したいと私の新しい入力JSONが

{"type":"emp","employee_id":4,"first_name":"Joseph","last_name":"Marshal","age":34,"salary":890000} 

このような異なるフィールドは、さまざまな種類のがあるでしょうし、その通りに私が保存したいだろう別のテーブルにデータがあるので、私が必要とする変更はどこにあるのか教えてください。おかげ

+0

のようなものであるために簡単な解決策今日は同じ話題です。私はこれまでのところ、テーブルごとに出力を作成する必要があることを暗示しています...あなたが入力上にターゲットを置くと、無効なターゲットに対してデータが届く可能性がありますが、狂っているようです... – Timbo

+0

Hey @Timbo私の答えを見てください –

+1

@Timbo:ボンネットの下でBCPを使用してそれらのテーブルをロードしています。ポータルのQuery Performance Insightでアクティビティを監視することで検証できます。起こったことがわかると、なぜ個々のテーブルを個々の出力として扱わなければならないのかがより理にかなっています。テーブルロック競合の可能性があるため、同じテーブルを複数のジョブで対象にする予定がある場合は、これも考慮する必要があります。 –

答えて

1

ちょっと最終的に私が得たこの私が、各出力テーブル

like this

のための1つの出力を作成していると私のクエリは、私は正確に探しています。この

WITH 
    [StreamData] 
AS (
    SELECT 
    * 
    FROM 
     [DeviceDataStream] 
    WHERE 
     [ObjectType] IS NULL -- Filter out device info and command responses 
) 

SELECT 
    EventProcessedUtcTime, 
    PartitionId, 
    EventEnqueuedUtcTime, 
    IoTHub, 
    employee_id, 
    first_name, 
    last_name, 
    age, 
    salary 
INTO 
    [Telemetry] 
FROM 
    [StreamData] 
WHERE type = 'emp' --Table 1 

SELECT 
    EventProcessedUtcTime, 
    PartitionId, 
    EventEnqueuedUtcTime, 
    PersonID, 
    FirstName, 
    LastName, 
    City, 
    height 
INTO 
    [TelemetryP] 
FROM 
    [StreamData] 
WHERE type = 'prsn' --Table 2 
関連する問題