Поделиться через


Настройка приема потоковой передачи в пуле Azure Synapse Data Explorer (предварительная версия)

Это важно

Обозреватель данных Azure Synapse Analytics (предварительная версия) будет прекращен 7 октября 2025 г. После этой даты рабочие нагрузки, работающие в Synapse Data Explorer, будут удалены, а связанные данные приложения будут потеряны. Мы настоятельно рекомендуем мигрировать в Eventhouse на платформе Microsoft Fabric.

Программа Microsoft Cloud Migration Factory (CMF) предназначена для поддержки клиентов при миграции в Fabric. Программа предлагает практические ресурсы клавиатуры без затрат для клиента. Эти ресурсы назначаются в течение 6–8 недель с предопределенной и согласованной областью. Номинации клиентов принимаются от команды учетных записей Microsoft или непосредственно путем отправки запроса на помощь команде CMF.

Прием потоковой передачи полезен для загрузки данных, если требуется низкая задержка между приемом и запросом. Рекомендуется использовать прием потоковой передачи в следующих сценариях:

  • Требуется задержка меньше секунды.
  • Для оптимизации операционной обработки многих таблиц, когда поток данных в каждой таблице относительно мал (несколько записей в секунду), а общий объем приема данных большой (тысячи записей в секунду).

Если поток данных в каждую таблицу высок (более 4 ГБ в час), рассмотрите возможность пакетного приема.

Дополнительные сведения о различных методах приема см. в обзоре приема данных.

Выбор соответствующего типа приема потоковой передачи

Поддерживаются два типа приема потоковой передачи:

Тип приема Описание
Центр событий или Центр Интернета вещей Центры настраиваются как источники данных потоковой передачи таблиц.
Дополнительные сведения о настройке см. в разделе "Концентратор событий".
Настраиваемое прием Настраиваемый прием данных требует написания приложения, использующего одну из клиентских библиотек Azure Synapse Data Explorer.
Используйте информацию в этой теме для настройки индивидуального процесса ввода данных. Вы также можете найти полезным пример C# приложения для потокового приема данных.

Используйте следующую таблицу, чтобы выбрать тип приема, подходящий для вашей среды:

Критерий Центр событий / Центр Интернета вещей Настраиваемая загрузка
Задержка данных между началом приема и данными, доступными для запроса Более длинная задержка Более короткая задержка
Затраты на разработку Быстрая и простая настройка, без затрат на разработку Высокая нагрузка на разработку для создания приложения приема данных, обработки ошибок и обеспечения согласованности данных

Замечание

Прием данных из концентратора событий в пулы Data Explorer не будет работать, если ваша рабочая область Synapse использует управляемую виртуальную сеть с включенной защитой от утечки данных.

Предпосылки

  • Подписка Azure. Создайте бесплатную учетную запись Azure.

  • Создать пул Data Explorer с помощью Synapse Studio или портала Azure

  • Создать базу данных Data Explorer.

    1. В Synapse Studio в области слева выберите элемент Данные.

    2. Выберите + (Добавить новый ресурс) >пул обозревателя данных, а затем используйте следующие сведения:

      Настройки Предлагаемое значение Описание
      Имя пула contosodataexplorer Имя пула Data Explorer, который вы будете использовать.
      Имя TestDatabase Имя базы данных должно быть уникальным в пределах кластера.
      Срок хранения по умолчанию 365. Интервал времени (в днях), в течение которого данные будут гарантированно доступны для запросов. Интервал времени измеряется с момента приема данных.
      Период кэширования по умолчанию 31 Интервал времени (в днях), в течение которого необходимо хранить часто запрашиваемые данные в хранилище SSD или ОЗУ, а не в долговременном хранилище.
    3. Чтобы создать базу данных, выберите Создать. Создание обычно занимает меньше минуты.

  • Получите конечные точки для запроса и загрузки данных.
    1. В Synapse Studio в области навигации слева выберите Управление>пулы Data Explorer.

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

      Снимок экрана: экран пулов обозревателя данных с списком существующих пулов.

    3. Запишите конечные точки приема запросов и данных. Используйте конечную точку запроса в качестве кластера при настройке подключений к пулу Обозревателя данных. При настройке пакетов SDK для приема данных используйте конечную точку приема данных.

      Снимок экрана: область свойств пулов обозревателя данных с адресами URI запроса и приема данных.

Рекомендации по производительности и эксплуатации

Основными участниками, которые могут повлиять на прием потоковой передачи, являются:

  • Спецификация вычислений. Производительность приема потоковой передачи и масштабирование емкости с увеличением размера пула Data Explorer. Число одновременных запросов приема ограничено шестью на одно ядро. Например, для 16 основных типов рабочих нагрузок, таких как оптимизированные для вычислений (крупные) и оптимизированные для хранилища (большие), максимальная поддерживаемая нагрузка составляет 96 одновременных запросов приема. Для двухъядерных типов рабочей нагрузки, таких как вычислительно оптимизированный (очень маленький), максимальная поддерживаемая нагрузка составляет 12 одновременных запросов на прием данных.
  • Ограничение размера данных: ограничение размера данных для запроса приема потоковой передачи составляет 4 МБ.
  • Обновления схемы: такие обновления схемы, как создание и изменение таблиц и сопоставления данных при приеме, могут занять до пяти минут для службы потокового ввода данных. Дополнительные сведения см. в разделе "Прием потоковой передачи" и изменения схемы.
  • Емкость SSD: Включение стриминга данных в пуле Data Explorer, даже если данные не поступают через стриминг, использует часть локального SSD-массива машин пула Data Explorer для данных стриминга и уменьшает объем хранилища, доступный для горячего кэша.

Включение потоковой загрузки в пуле Data Explorer

Прежде чем использовать прием потоковой передачи, необходимо включить возможность в пуле Обозревателя данных и определить политику приема потоковой передачи. Вы можете включить эту возможность при создании пула обозревателя данных или добавить ее в существующий пул обозревателя данных.

Предупреждение

Просмотрите ограничения перед включением приема потоковой передачи.

Включение приема потоковой передачи при создании нового пула обозревателя данных

Вы можете включить прием потоковой передачи при создании нового пула Обозревателя данных с помощью Azure Synapse Studio или портала Azure.

При создании пула обозревателя данных с помощью шагов, описанных в разделе "Создание пула обозревателя данных" с помощью Synapse Studio, на вкладке "Дополнительные параметры" выберите"Включить>".

Включите прием потоковой передачи при создании пула Обозревателя данных в Azure Synapse Data Explorer.

Включение приема потоковой передачи в существующем пуле Обозревателя данных

Если у вас есть существующий пул Обозревателя данных, можно включить прием потоковой передачи с помощью портала Azure.

  1. На портале Azure перейдите в пул Обозревателя данных.
  2. В разделе "Параметры" выберите "Конфигурации".
  3. В области "Конфигурации" выберите "Включить ", чтобы включить прием потоковой передачи.
  4. Выберите Сохранить.

Создание целевой таблицы и определение политики

Создайте таблицу для получения данных приема потоковой передачи и определите ее связанную политику с помощью Azure Synapse Studio или портала Azure.

  1. В Synapse Studio в области слева выберите элемент Разработка.

  2. В разделе Скрипты KQL выберите + (Добавить новый ресурс) >Скрипт KQL. В области справа можно присвоить имя вашему сценарию.

  3. В меню Подключение к выберите contosodataexplorer.

  4. В меню Использование базы данных выберите TestDatabase.

  5. Вставьте следующую команду и выберите Выполнить, чтобы создать таблицу.

    .create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
    
  6. Скопируйте одну из следующих команд в область запроса и выберите "Выполнить". Это определяет политику приема потоковой передачи в созданной таблице или базе данных, содержащей таблицу.

    Подсказка

    Политика, определенная на уровне базы данных, применяется ко всем существующим и будущим таблицам в базе данных.

    • Чтобы определить политику в созданной таблице, используйте следующую команду:

      .alter table TestTable policy streamingingestion enable
      
    • Чтобы определить политику в базе данных, содержащей созданную таблицу, используйте следующую команду:

      .alter database StreamingTestDb policy streamingingestion enable
      

Создайте приложение для ввода потоковых данных в пул Обозревателя данных

Создайте приложение для приема данных в пул Data Explorer с помощью предпочитаемого языка. Для переменной poolPath используйте конечную точку запроса, заметив ее в предварительных требованиях.

using Kusto.Data;
using Kusto.Ingest;
using System.IO;
using Kusto.Data.Common;

namespace StreamingIngestion
{
    class Program
    {
        static void Main(string[] args)
        {
            string poolPath = "https://<Poolname>.<WorkspaceName>.kusto.windows.net";
            string appId = "<appId>";
            string appKey = "<appKey>";
            string appTenant = "<appTenant>";
            string dbName = "<dbName>";
            string tableName = "<tableName>";

            // Create Kusto connection string with App Authentication
            var csb =
                new KustoConnectionStringBuilder(poolPath)
                    .WithAadApplicationKeyAuthentication(
                        applicationClientId: appId,
                        applicationKey: appKey,
                        authority: appTenant
                    );

            // Create a disposable client that will execute the ingestion
            using (IKustoIngestClient client = KustoIngestFactory.CreateStreamingIngestClient(csb))
            {
                // Initialize client properties
                var ingestionProperties =
                    new KustoIngestionProperties(
                        databaseName: dbName,
                        tableName: tableName
                    );

                // Ingest from a compressed file
                var fileStream = File.Open("MyFile.gz", FileMode.Open);
                // Create source options
                var sourceOptions = new StreamSourceOptions()
                {
                    CompressionType = DataSourceCompressionType.GZip,
                };
                // Ingest from stream
                var status = client.IngestFromStreamAsync(fileStream, ingestionProperties, sourceOptions).GetAwaiter().GetResult();
            }
        }
    }
}

Отключение потоковой загрузки в пуле Data Explorer

Предупреждение

Отключение приема потоковой передачи может занять несколько часов.

Перед отключением приема потоковой передачи в пуле Data Explorer удалите политику приема потоковой передачи из всех соответствующих таблиц и баз данных. Удаление политики приема потоковой передачи активирует изменение порядка данных в пуле обозревателя данных. Данные приема потоковой передачи перемещаются из исходного хранилища в постоянное хранилище в хранилище столбцов (экстенты или сегменты). Этот процесс может занять от нескольких секунд до нескольких часов в зависимости от объема данных в начальном хранилище.

Удаление политики приема потоковой передачи

Политику приема потоковой передачи можно удалить с помощью Azure Synapse Studio или портала Azure.

  1. В Synapse Studio в области слева выберите элемент Разработка.

  2. В разделе Скрипты KQL выберите + (Добавить новый ресурс) >Скрипт KQL. В области справа можно присвоить имя вашему сценарию.

  3. В меню Подключение к выберите contosodataexplorer.

  4. В меню Использование базы данных выберите TestDatabase.

  5. Вставьте следующую команду и выберите Выполнить, чтобы создать таблицу.

    .delete table TestTable policy streamingingestion
    
  6. На портале Azure перейдите в пул Обозревателя данных.

  7. В разделе "Параметры" выберите "Конфигурации".

  8. В области "Конфигурации" выберите "Включить ", чтобы включить прием потоковой передачи.

  9. Выберите Сохранить.

Ограничения

  • Курсоры базы данных не поддерживаются для базы данных, если сама база данных или любая из ее таблиц имеет политику приема потоковой передачи, определенную и включенную.
  • Сопоставления данных должны быть предварительно созданы для использования в приеме потоковой передачи. Отдельные запросы приема потоковой передачи не соответствуют встроенным сопоставлениям данных.
  • Теги экстентов нельзя задать для данных потоковой загрузки.
  • Обновление политики. Политика обновления может ссылаться только на недавно загруженные данные в исходной таблице, а не на другие данные или таблицы в базе данных.
  • Если прием потоковой передачи используется в любой из таблиц базы данных, эта база данных не может использоваться в качестве лидера для баз данных подписчиков или в качестве поставщика данных для Azure Synapse Analytics Data Share.

Дальнейшие действия