Определение потока событий

В этой статье представлена разбивка структуры определения для элементов Eventstream.

Части определения

В этой таблице перечислены части определения eventstream.

Путь к части определения тип Обязательно Описание
eventstream.json Eventstream (JSON) Описание топологии элемента Eventstream
eventstreamProperties.json EventstreamProperties (JSON) Описание метаданных eventstream
.platform PlatformDetails (JSON) Описание метаданных элемента

Каждая часть определения элемента Eventstream создается следующим образом:

Поток событий

Описание топологии элемента Eventstream.

Имя Тип Обязательно Описание
sources Массив правда Описывает источники данных, которые могут быть приема в eventstream для обработки.
destinations Массив правда Описывает конечные точки в Fabric, в которых обработанные данные можно направлять в, в том числе Lakehouse, Eventhouse, Reflex и другие.
operators Массив правда Определите обработчики событий, обрабатывающие потоки данных в режиме реального времени, такие как Filter, Aggregate, Group By и Join.
streams Массив правда Описывает потоки данных, доступные для подписки и анализа в Центре реального времени. Существует два типа потоков: потоки по умолчанию и производные потоки.

Пример eventstream.json

Сведения о создании JSON-файла, описывающего элемент Eventstream, см. в разделе REST API eventstream.

{
    "sources": [
        {
            "name": "myEventHub",
            "type": "AzureEventHub",
            "properties": {
                "dataConnectionId": "cc8271ee-8f72-473d-969c-6828f5fd0d45",
                "consumerGroupName": "$Default",
                "inputSerialization": {
                    "type": "Json",
                    "properties": {
                        "encoding": "UTF8"
                    }
                }
            }
        }
    ],
    "destinations": [
        {
            "name": "myLakehouse",
            "type": "Lakehouse",
            "properties": {
                "workspaceId": "fdf52f3a-b687-41b8-8ff8-aeeca4d1edd8",
                "itemId": "737d6a97-e88c-45e1-9c39-adf1c9c4e817",
                "schema": "",
                "deltaTable": "newTable",
                "minimumRows": 100000,
                "maximumDurationInSeconds": 120,
                "inputSerialization": {
                    "type": "Json",
                    "properties": {
                        "encoding": "UTF8"
                    }
                }
            },
            "inputNodes": [
                {
                    "name": "derivedStream"
                }
            ]
        }
    ],
    "streams": [
        {
            "name": "myEventstream-stream",
            "type": "DefaultStream",
            "properties": {},
            "inputNodes": [
                {
                    "name": "myEventHub"
                }
            ]
        },
        {
            "name": "derivedStream",
            "type": "DerivedStream",
            "properties": {
                "inputSerialization": {
                    "type": "Json",
                    "properties": {
                        "encoding": "UTF8"
                    }
                }
            },
            "inputNodes": [
                {
                    "name": "GroupBy"
                }
            ]
        }
    ],
    "operators": [
        {
            "name": "GroupBy",
            "type": "GroupBy",
            "inputNodes": [
                {
                    "name": "myEventstream-stream"
                }
            ],
            "properties": {
                "aggregations": [
                    {
                        "aggregateFunction": "Average",
                        "column": {
                            "expressionType": "ColumnReference",
                            "node": null,
                            "columnName": "payload",
                            "columnPathSegments": [
                                {
                                    "field": "ts_ms"
                                }
                            ]
                        },
                        "alias": "AVG_ts_ms"
                    }
                ],
                "groupBy": [],
                "window": {
                    "type": "Tumbling",
                    "properties": {
                        "duration": {
                            "value": 5,
                            "unit": "Minute"
                        },
                        "offset": {
                            "value": 1,
                            "unit": "Minute"
                        }
                    }
                }
            }
        }
    ],
    "compatibilityLevel": "1.0"
}

Чтобы создать элемент Eventstream для полезных данных API, можно использовать шаблон GitHub для определения элемента Eventstream.

EventstreamProperties

Описание метаданных eventstream.

Имя Тип Обязательно Описание
retentionTimeInDays Целое число Описывает дни хранения элемента Eventstream. Значение по умолчанию — 1. Допустимый диапазон значений от 1 до 90.
eventThroughputLevel Перечисление Описывает уровень пропускной способности события элемента Eventstream. Значение по умолчанию — "Низкий". Допустимые значения: Low, Medium, High.

Пример eventstreamProperties.json

{
  "retentionTimeInDays": 1,
  "eventThroughputLevel": "Low"
}

Часть платформы

Полезные данные платформы необязательны. Часть платформы — это файл, содержащий сведения о метаданных Eventstream.

Пример определения

Ниже приведен пример определения потока событий в кодировке Base64, где содержимое из примера полезных данных, декодированное из Base64 , закодировано в Base64 и помещается в payload поле с заданным путьом eventstream.json :


{
  "displayName": "myEventstream",
  "type": "Eventstream",
  "description": "Create Eventstream item with definition",
  "definition": {
    "parts": [
      {
        "path": "eventstream.json",
        "payload": "<base64 encoded string>",
        "payloadType": "InlineBase64"
      },
      {
        "path": "eventstreamProperties.json",
        "payload": "<base64 encoded string>",
        "payloadType": "InlineBase64"
      },
      {
        "path": ".platform",
        "payload": "ZG90UGxhdGZvcm1CYXNlNjRTdHJpbmc=",
        "payloadType": "InlineBase64"
      }
    ]
  }
}