Poziom zgodności dla zadań usługi Azure Stream Analytics

W tym artykule opisano opcję poziomu zgodności w usłudze Azure Stream Analytics.

Stream Analytics to usługa zarządzana z regularnymi aktualizacjami funkcji i stałymi ulepszeniami wydajności. Większość aktualizacji środowiska uruchomieniowego usługi jest automatycznie udostępniana użytkownikom końcowym niezależnie od poziomu zgodności. Jednak gdy nowa funkcja wprowadza zmianę zachowania istniejących zadań lub zmiany sposobu korzystania z danych w uruchomionych zadaniach, wprowadzamy tę zmianę na nowym poziomie zgodności. Istniejące zadania usługi Stream Analytics można uruchamiać bez istotnych zmian, pozostawiając ustawienie poziomu zgodności obniżone. Gdy wszystko będzie gotowe do korzystania z najnowszych zachowań środowiska uruchomieniowego, możesz wyrazić zgodę, podnosząc poziom zgodności.

Wybierz poziom zgodności

Poziom zgodności steruje zachowaniem środowiska uruchomieniowego zadania usługi Stream Analytics.

Usługa Azure Stream Analytics obsługuje obecnie trzy poziomy zgodności:

  • 1.2 — najnowsze zachowanie z najnowszymi ulepszeniami
  • 1.1 — Poprzednie zachowanie
  • 1.0 — Oryginalny poziom zgodności wprowadzony podczas ogólnej dostępności usługi Azure Stream Analytics kilka lat temu.

Podczas tworzenia nowego zadania usługi Stream Analytics najlepszym rozwiązaniem jest utworzenie go przy użyciu najnowszego poziomu zgodności. Rozpocznij projekt zadania, opierając się na najnowszych zachowaniach, aby uniknąć późniejszej dodatkowej zmiany i złożoności.

Ustawianie poziomu zgodności

Poziom zgodności zadania usługi Stream Analytics można ustawić w Azure Portal lub za pomocą wywołania interfejsu API REST zadania tworzenia.

Aby zaktualizować poziom zgodności zadania w Azure Portal:

  1. Użyj Azure Portal, aby zlokalizować zadanie usługi Stream Analytics.
  2. Zatrzymaj zadanie przed zaktualizowaniem poziomu zgodności. Nie można zaktualizować poziomu zgodności, jeśli zadanie jest w stanie uruchomienia.
  3. W obszarze nagłówka Konfiguruj wybierz pozycję Poziom zgodności.
  4. Wybierz odpowiednią wartość poziomu zgodności.
  5. Wybierz pozycję Zapisz w dolnej części strony.

Poziom zgodności usługi Stream Analytics w usłudze Azure Portal

Po zaktualizowaniu poziomu zgodności kompilator T weryfikuje zadanie przy użyciu składni odpowiadającej wybranemu poziomowi zgodności.

Poziom zgodności 1.2

Następujące istotne zmiany są wprowadzane na poziomie zgodności 1.2:

Protokół przesyłania komunikatów PROTOKOŁU AMQP

1.2 poziom: Usługa Azure Stream Analytics używa protokołu przesyłania komunikatów Advanced Message Queueing Protocol (AMQP) do zapisywania w kolejkach i tematach usługi Service Bus. Protokół AMQP umożliwia tworzenie międzyplatformowych aplikacji hybrydowych przy użyciu otwartego protokołu standardowego.

Funkcje geoprzestrzenne

Poprzednie poziomy: Usługa Azure Stream Analytics użyła obliczeń geografii.

Poziom 1.2: Usługa Azure Stream Analytics umożliwia obliczanie rzutowanych współrzędnych geograficznych geometrycznych. Podpis funkcji geoprzestrzennych nie zmienia się. Jednak ich semantyka jest nieco inna, co pozwala na bardziej precyzyjne obliczanie niż wcześniej.

Usługa Azure Stream Analytics obsługuje indeksowanie danych referencyjnych geoprzestrzennych. Dane referencyjne zawierające elementy geoprzestrzenne można indeksować w celu szybszego obliczania sprzężenia.

Zaktualizowane funkcje geoprzestrzenne przynoszą pełną wyrazistość formatu geoprzestrzennego dobrze znanego tekstu (WKT). Możesz określić inne składniki geoprzestrzenne, które nie były wcześniej obsługiwane w pliku GeoJson.

Aby uzyskać więcej informacji, zobacz Aktualizacje do funkcji geoprzestrzennych w usłudze Azure Stream Analytics — Cloud i IoT Edge.

Równoległe wykonywanie zapytań dla źródeł wejściowych z wieloma partycjami

Poprzednie poziomy: Zapytania usługi Azure Stream Analytics wymagały użycia klauzuli PARTITION BY w celu zrównania przetwarzania zapytań między partycjami źródła danych wejściowych.

Poziom 1.2: Jeśli logika zapytań może być równoległa w partycjach źródła danych wejściowych, usługa Azure Stream Analytics tworzy oddzielne wystąpienia zapytań i uruchamia obliczenia równolegle.

Natywna integracja interfejsu API zbiorczego z danymi wyjściowymi usługi Azure Cosmos DB

Poprzednie poziomy: Zachowanie operacji upsert zostało wstawione lub scalane.

Poziom 1.2: Natywna integracja interfejsu API zbiorczego z danymi wyjściowymi usługi Azure Cosmos DB maksymalizuje przepływność i efektywnie obsługuje żądania ograniczania przepustowości. Aby uzyskać więcej informacji, zobacz stronę danych wyjściowych usługi Azure Stream Analytics do usługi Azure Cosmos DB.

Zachowanie operacji upsert jest wstawiane lub zamieniane.

DateTimeOffset podczas zapisywania w danych wyjściowych SQL

Poprzednie poziomy:TypyDateTimeOffset zostały dostosowane do czasu UTC.

Poziom 1.2: Ustawienie DateTimeOffset nie jest już dostosowywane.

Długie podczas zapisywania w danych wyjściowych SQL

Poprzednie poziomy: Wartości zostały obcięte na podstawie typu docelowego.

Poziom 1.2: Wartości, które nie mieszczą się w typie docelowym, są obsługiwane zgodnie z zasadami błędów wyjściowych.

Serializacja rekordów i tablic podczas zapisywania w danych wyjściowych SQL

Poprzednie poziomy: Rekordy zostały zapisane jako "Rekord", a tablice zostały zapisane jako "Tablica".

Poziom 1.2: Rekordy i tablice są serializowane w formacie JSON.

Ścisła walidacja prefiksu funkcji

Poprzednie poziomy: Nie było ścisłej walidacji prefiksów funkcji.

Poziom 1.2: Usługa Azure Stream Analytics ma ścisłą walidację prefiksów funkcji. Dodanie prefiksu do wbudowanej funkcji powoduje błąd. Na przykładmyprefix.ABS(…) nie jest obsługiwane.

Dodanie prefiksu do wbudowanych agregacji powoduje również błąd. Na przykład nie jest obsługiwany element myprefix.SUM(…).

Użycie prefiksu "system" dla wszystkich funkcji zdefiniowanych przez użytkownika powoduje błąd.

Nie zezwalaj tablicy i obiektu na kluczowe właściwości karty wyjściowej usługi Azure Cosmos DB

Poprzednie poziomy: Typy tablic i obiektów były obsługiwane jako właściwość klucza.

Poziom 1.2: Typy tablic i obiektów nie są już obsługiwane jako właściwość klucza.

Deserializacji typu logicznego w formatach JSON, AVRO i PARQUET

Poprzednie poziomy: Usługa Azure Stream Analytics deserializuje wartość logiczną w typie BIGINT — fałszywe mapuje wartości 0 i true na 1. Dane wyjściowe tworzą tylko wartości logiczne w formatach JSON, AVRO i PARQUET, jeśli jawnie konwertujesz zdarzenia na BIT. Na przykład zapytanie przekazywane, takie jak SELECT value INTO output1 FROM input1 odczytywanie kodu JSON { "value": true } z danych input1, spowoduje zapisanie w danych wyjściowych 1 wartości { "value": 1 }JSON .

Poziom 1.2: Usługa Azure Stream Analytics deserializuje wartość logiczną do typu BIT. Fałsz mapuje wartości 0 i true na 1. Zapytanie przekazywane, takie jak SELECT value INTO output1 FROM input1 odczytywanie kodu JSON { "value": true } z danych wejściowych input1, spowoduje zapisanie w danych wyjściowych1 wartości { "value": true }JSON. Możesz rzutować wartość, aby wpisać BIT w zapytaniu, aby upewnić się, że są one wyświetlane jako true i false w danych wyjściowych dla formatów obsługujących typ logiczny.

Poziom zgodności 1.1

Następujące istotne zmiany zostały wprowadzone w poziomie zgodności 1.1:

Format XML usługi Service Bus

Poziom 1.0: Usługa Azure Stream Analytics użyła elementu DataContractSerializer, więc zawartość komunikatu zawierała tagi XML. Przykład:

@\u0006string\b3http://schemas.microsoft.com/2003/10/Serialization/\u0001{ "SensorId":"1", "Temperature":64\}\u0001

Poziom 1.1: Zawartość wiadomości zawiera strumień bezpośrednio bez dodatkowych tagów. Na przykład: { "SensorId":"1", "Temperature":64}

Utrwalanie uwzględniania wielkości liter dla nazw pól

Poziom 1.0: Nazwy pól zostały zmienione na małe litery podczas przetwarzania przez aparat usługi Azure Stream Analytics.

1.1 poziom: ważność wielkości liter jest zachowywana dla nazw pól podczas ich przetwarzania przez aparat usługi Azure Stream Analytics.

Uwaga

Trwałość wielkości liter nie jest jeszcze dostępna dla zadań analitycznych usługi Stream hostowanych przy użyciu środowiska usługi Edge. W związku z tym wszystkie nazwy pól są konwertowane na małe litery, jeśli zadanie jest hostowane w przeglądarce Edge.

FloatNaNDeserializationDisabled

Poziom 1.0: Polecenie CREATE TABLE nie filtruje zdarzeń za pomocą wartości NaN (Not-a-Number). Na przykład Infinity, -Infinity) w typie kolumny FLOAT, ponieważ są one poza udokumentowanym zakresem dla tych liczb.

Poziom 1.1: FUNKCJA CREATE TABLE umożliwia określenie silnego schematu. Aparat usługi Stream Analytics sprawdza, czy dane są zgodne z tym schematem. Za pomocą tego modelu polecenie może filtrować zdarzenia za pomocą wartości NaN.

Wyłącz automatyczną konwersję ciągów daty/godziny na typ DateTime w ruchu przychodzącym dla formatu JSON

Poziom 1.0: Analizator JSON automatycznie konwertuje wartości ciągu z informacjami o dacie/godzinie/strefie na typ DATETIME podczas ruchu przychodzącego, dzięki czemu wartość natychmiast traci oryginalne informacje o formatowaniu i strefie czasowej. Ponieważ odbywa się to przy ruchu przychodzącym, nawet jeśli to pole nie zostało użyte w zapytaniu, jest konwertowane na czas UTC DateTime.

Poziom 1.1: Nie ma automatycznej konwersji wartości ciągów z informacjami o dacie/godzinie/strefie do typu DATETIME. W związku z tym informacje o strefie czasowej i oryginalne formatowanie są przechowywane. Jeśli jednak pole NVARCHAR(MAX) jest używane w zapytaniu jako część wyrażenia DATETIME (na przykład funkcja DATEADD), jest konwertowane na typ DATETIME w celu wykonania obliczeń i traci oryginalny formularz.

Następne kroki