Dane wyjściowe z usługi Azure Stream Analytics

Zadanie usługi Azure Stream Analytics składa się z danych wejściowych, zapytań i danych wyjściowych. Istnieje kilka typów danych wyjściowych, do których można wysyłać przekształcone dane. W tym artykule wymieniono obsługiwane dane wyjściowe usługi Stream Analytics. Podczas projektowania zapytania usługi Stream Analytics należy odwołać się do nazwy danych wyjściowych przy użyciu klauzuli INTO. Można użyć pojedynczego danych wyjściowych na zadanie lub wielu danych wyjściowych na zadanie przesyłania strumieniowego (jeśli są one potrzebne), dodając wiele klauzul INTO do zapytania.

Aby tworzyć, edytować i testować dane wyjściowe zadań usługi Stream Analytics, możesz użyć witryny Azure Portal, programu Azure PowerShell, interfejsu API platformy .NET, interfejsu API REST, programu Visual Studio i programu Visual Studio Code.

Uwaga

Zdecydowanie zalecamy używanie narzędzi usługi Stream Analytics dla programu Visual Studio Code w celu uzyskania najlepszego środowiska programowania lokalnego. Istnieją znane luki w funkcjach w narzędziach usługi Stream Analytics dla programu Visual Studio 2019 (wersja 2.6.3000.0) i nie będzie ona ulepszana w przyszłości.

Niektóre typy danych wyjściowych obsługują partycjonowanie , jak pokazano w poniższej tabeli.

Wszystkie dane wyjściowe obsługują przetwarzanie wsadowe, ale tylko niektóre obsługują jawne ustawianie rozmiaru partii wyjściowej. Aby uzyskać więcej informacji, zobacz sekcję Rozmiary partii danych wyjściowych .

Typ danych wyjściowych Partycjonowanie Zabezpieczenia
Azure Data Explorer Tak Tożsamość zarządzana
Azure Functions Tak Klucz dostępu
Azure Synapse Analytics Tak Uwierzytelnianie użytkownika SQL,
tożsamość zarządzana
Magazyn obiektów blob i usługa Azure Data Lake Gen 2 Tak Klucz dostępu,
tożsamość zarządzana
Azure Cosmos DB Tak Klucz dostępu,
tożsamość zarządzana
Azure Data Lake Storage Gen 2 Tak Tożsamość zarządzana użytkownika
firmy Microsoft Entra
Azure Event Hubs Tak, należy ustawić kolumnę klucza partycji w konfiguracji wyjściowej. Klucz dostępu,
tożsamość zarządzana
Kafka (wersja zapoznawcza) Tak, należy ustawić kolumnę klucza partycji w konfiguracji wyjściowej. Klucz dostępu,
tożsamość zarządzana
Azure Database for PostgreSQL Tak Uwierzytelnianie nazwy użytkownika i hasła
Power BI Nie. Microsoft Entra user,
Managed Identity
Kolejki usługi Azure Service Bus Tak Klucz dostępu,
tożsamość zarządzana
Tematy dotyczące usługi Azure Service Bus Tak Klucz dostępu,
tożsamość zarządzana
Azure SQL Database Tak, opcjonalnie. Uwierzytelnianie użytkownika SQL,
tożsamość zarządzana
Azure Table storage Tak Klucz konta

Ważne

Usługa Azure Stream Analytics używa interfejsu API wstawiania lub zastępowania zgodnie z projektem. Ta operacja zastępuje istniejącą jednostkę lub wstawia nową jednostkę, jeśli nie istnieje w tabeli.

Partycjonowanie

Usługa Stream Analytics obsługuje partycje dla wszystkich danych wyjściowych z wyjątkiem usługi Power BI. Aby uzyskać więcej informacji na temat kluczy partycji i liczby składników zapisywania danych wyjściowych, zobacz artykuł dotyczący określonego typu danych wyjściowych, który cię interesuje. Artykuły dotyczące typów danych wyjściowych są połączone w poprzedniej sekcji.

Ponadto w celu bardziej zaawansowanego dostrajania partycji można kontrolować liczbę składników zapisywania danych wyjściowych przy użyciu INTO <partition count> klauzuli (zobacz INTO) w zapytaniu, która może być przydatna w osiągnięciu żądanej topologii zadań. Jeśli karta wyjściowa nie jest partycjonowana, brak danych w jednej partycji wejściowej powoduje opóźnienie do późnego przybycia czasu. W takich przypadkach dane wyjściowe są scalane z jednym modułem zapisywania, co może powodować wąskie gardła w potoku. Aby dowiedzieć się więcej na temat zasad późnego przyjazdu, zobacz Zagadnienia dotyczące zamówienia zdarzeń usługi Azure Stream Analytics.

Rozmiar partii wyjściowej

Wszystkie dane wyjściowe obsługują przetwarzanie wsadowe, ale tylko niektóre obsługują jawnie ustawienia rozmiaru partii. Usługa Azure Stream Analytics używa partii o zmiennym rozmiarze do przetwarzania zdarzeń i zapisywania w danych wyjściowych. Zazwyczaj aparat usługi Stream Analytics nie zapisuje jednego komunikatu naraz i używa partii w celu zwiększenia wydajności. Gdy szybkość zarówno zdarzeń przychodzących, jak i wychodzących jest wysoka, usługa Stream Analytics używa większych partii. Gdy szybkość ruchu wychodzącego jest niska, używa mniejszych partii, aby utrzymać małe opóźnienia.

Zachowanie dzielenia plików Avro i Parquet

Zapytanie usługi Stream Analytics może wygenerować wiele schematów dla danych wyjściowych. Lista kolumn przewidywanych i ich typ może ulec zmianie na podstawie wierszy. Zgodnie z projektem formaty Avro i Parquet nie obsługują schematów zmiennych w jednym pliku.

Podczas kierowania strumienia ze schematami zmiennych do danych wyjściowych przy użyciu tych formatów mogą wystąpić następujące zachowania:

  • Jeśli można wykryć zmianę schematu, bieżący plik wyjściowy zostanie zamknięty i nowy zainicjowany w nowym schemacie. Dzielenie plików, takich jak takie poważnie spowalnia dane wyjściowe, gdy często występują zmiany schematu. To zachowanie może poważnie wpłynąć na ogólną wydajność zadania
  • Jeśli nie można wykryć zmiany schematu, wiersz najprawdopodobniej zostanie odrzucony, a zadanie zostanie zablokowane, ponieważ wiersz nie może być danymi wyjściowymi. Zagnieżdżone kolumny lub tablice wielo typowe to sytuacje, które nie są odnajdywane i odrzucane.

Zalecamy rozważenie danych wyjściowych przy użyciu formatu Avro lub Parquet jako silnie typizowanego lub schematu podczas zapisu oraz zapytań przeznaczonych dla nich do zapisania (jawnych konwersji i projekcji dla jednolitego schematu).

Jeśli należy wygenerować wiele schematów, rozważ utworzenie wielu danych wyjściowych i podzielenie rekordów na każde miejsce docelowe przy użyciu klauzuli WHERE .

Właściwości okna przetwarzania wsadowego danych wyjściowych Parquet

W przypadku korzystania z wdrożenia szablonu usługi Azure Resource Manager lub interfejsu API REST dwie właściwości okna przetwarzania wsadowego to:

  1. timeWindow

    Maksymalny czas oczekiwania na partię. Wartość powinna być ciągiem Timespan. Na przykład 00:02:00 przez dwie minuty. Po tym czasie partia jest zapisywana w danych wyjściowych, nawet jeśli minimalne wymagania dotyczące wierszy nie zostaną spełnione. Wartość domyślna to 1 minuta, a dozwolona wartość maksymalna to 2 godziny. Jeśli dane wyjściowe obiektu blob mają częstotliwość wzorca ścieżki, czas oczekiwania nie może być wyższy niż zakres czasu partycji.

  2. sizeWindow

    Liczba minimalnych wierszy na partię. W przypadku programu Parquet każda partia tworzy nowy plik. Bieżąca wartość domyślna to 2000 wierszy, a dozwolona wartość maksymalna to 10 000 wierszy.

Te właściwości okna przetwarzania wsadowego są obsługiwane tylko przez interfejs API w wersji 2017-04-01-preview lub nowszej. Oto przykład ładunku JSON dla wywołania interfejsu API REST:

"type": "stream",
      "serialization": {
        "type": "Parquet",
        "properties": {}
      },
      "timeWindow": "00:02:00",
      "sizeWindow": "2000",
      "datasource": {
        "type": "Microsoft.Storage/Blob",
        "properties": {
          "storageAccounts" : [
          {
            "accountName": "{accountName}",
            "accountKey": "{accountKey}",
          }
          ],

Następne kroki