Stream Analyatic(SA) множественный вход и один выход
Мне нужен способ, где я могу объединить вход от 2 входа SA до 1 выхода SA.
Например
Я пытаюсь прочитать данные из двух входных данных и хочу поместить их в один выход (таблица SQL). Получено исключение, в котором говорится: "Дублированные выходные имена не допускаются".
SELECT
Input.internal.data.id AS id,
Input.context.data.eventtime AS eventtime,
recordProperty.PropertyName AS name,
Cast(recordProperty.PropertyValue.Value AS bigint) AS value
INTO
[output-custommetric]
FROM
[input-custommetric] AS Input TIMESTAMP BY Input.context.data.eventtime
CROSS APPLY GetElements(Input.[context].[custom].[metrics]) AS flat
CROSS APPLY GetRecordProperties(Flat.ArrayValue) AS recordProperty
SELECT
Input.internal.data.id AS id,
Input.context.data.eventtime AS eventtime,
recordProperty.PropertyName AS name,
Cast(recordProperty.PropertyValue.Value AS bigint) AS value
INTO
[output-custommetric]
FROM
[input-slacustommetric] AS Input TIMESTAMP BY Input.context.data.eventtime
CROSS APPLY GetElements(Input.[context].[custom].[metrics]) AS flat
CROSS APPLY GetRecordProperties(Flat.ArrayValue) AS recordProperty
1 ответ
Поскольку тип данных обоих запросов кажется одинаковым, вы можете использовать UNION, чтобы объединить выходные данные ваших двух запросов в один перед выводом в таблицу SQL.
Вот переписать ваш запрос:
SELECT
Input.internal.data.id AS id,
Input.context.data.eventtime AS eventtime,
recordProperty.PropertyName AS name,
Cast(recordProperty.PropertyValue.Value AS bigint) AS value
INTO
[output-custommetric]
FROM
[input-custommetric] AS Input TIMESTAMP BY Input.context.data.eventtime
CROSS APPLY GetElements(Input.[context].[custom].[metrics]) AS flat
CROSS APPLY GetRecordProperties(Flat.ArrayValue) AS recordProperty
UNION
SELECT
Input.internal.data.id AS id,
Input.context.data.eventtime AS eventtime,
recordProperty.PropertyName AS name,
Cast(recordProperty.PropertyValue.Value AS bigint) AS value
FROM
[input-slacustommetric] AS Input TIMESTAMP BY Input.context.data.eventtime
CROSS APPLY GetElements(Input.[context].[custom].[metrics]) AS flat
CROSS APPLY GetRecordProperties(Flat.ArrayValue) AS recordProperty