Создание и изменение эластичных таблиц
Эластичная таблица — это таблица, управление которой осуществляет Microsoft Dataverse. Эластичные таблицы имеют тот же привычный пользовательский интерфейс и API, что и стандартные таблицы. Они имеют много общих аспектов и параметров со стандартными таблицами, но имеют свои собственные уникальные функции и возможности, работающие на базе Azure Cosmos DB.
Как и стандартные таблицы, эластичные таблицы входят в используемую вами емкость Dataverse под базы данных.
Посмотрите это видео, чтобы узнать, что представляют собой эластичные таблицы.
Когда следует рассматривать использование эластичных таблиц Dataverse?
Эластичные таблицы предназначены для обработки больших объемов данных в режиме реального времени. Используя эластичные таблицы, вы можете импортировать, хранить и анализировать большие объемы данных без проблем с масштабируемостью, задержками или производительностью.
Эластичным таблицам присущи уникальные возможности в плане гибкости схемы, горизонтального масштабирования и автоматического удаления данных по истечении определенного периода времени.
Эластичные таблицы автоматически масштабируются для приема десятков миллионов строк каждый час. Фоновые процессы могут разбирать сигналы IoT, прогнозировать потребности в обслуживании и заранее планировать работу технических специалистов.
Рассмотрим сценарий, в котором Contoso — предприятие розничной торговли с миллионами существующих клиентов. Contoso располагает большой базой данных клиентов и стремится увеличивать продажи, сохраняя при этом клиентов. Основываясь на предыдущей истории клиентов, маркетологи компании хотят проводить 24-часовые флэш-распродажи с различными купонами, ориентированными на клиентов и продукты компании. Они подсчитали, что количество требуемых купонов составит более 100 миллионов на одну кампанию с флэш-распродажей. Маркетологи планируют провести несколько 24-часовых кампаний, ориентированных на разные сегменты клиентов.
Требование к маркетинговому приложению Contoso заключается в том, что оно должно иметь возможность принимать данные о 100 миллионах или более купонов в течение нескольких часов, считывать миллионы купонов в час и отправлять купоны клиентам.
Эластичные таблицы будут автоматически масштабироваться для этого сценария, требующего высокой пропускной способности.
Например, в приведенном выше сценарии эластичная таблица с именем Купон с миллионами записей может быть связана со стандартными таблицами Dataverse, такими как Контакт (информация о клиенте) и Предложение (пользовательская стандартная таблица). Поскольку эластичные таблицы изолированы от стандартных таблиц, на производительность маркетингового приложения в целом это не повлияет. Кроме того, функция срока жизни эластичной таблицы (в данном сценарии таблицы Купон) позволяет автоматически удалять данные через фиксированные периоды времени и обеспечивает оптимизацию использования емкости хранилища.
Используйте эластичные таблицы, когда:
- Ваши данные могут быть неструктурированными или частично структурированными, или ваша модель данных может постоянно меняться.
- Вам требуется автоматическое горизонтальное масштабирование.
- Вам необходимо обрабатывать большой объем запросов на чтение и запись.
Используйте стандартные таблицы, когда:
- Ваше приложение требует строгой согласованности.
- В вашем приложении требуется реляционное моделирование и возможность осуществления транзакций между таблицами и на этапах выполнения подключаемых модулей.
- В вашем приложении требуются сложные соединения.
Выбор таблицы должен основываться на конкретных потребностях вашего приложения. Возможно, есть смысл использовать сочетание обоих типов таблиц.
Горизонтальное масштабирование и производительность
По мере роста объемов ваших бизнес-данных эластичные таблицы обеспечивают неограниченную автоматическую масштабируемость в зависимости от рабочей нагрузки вашего приложения, как в отношении размера хранилища, так и в отношении пропускной способности, например количества записей, создаваемых, обновляемых или удаляемых за определенный период времени.
Если ваш бизнес-сценарий требует очень большого объема записи данных, создатели приложений могут использовать множество API-интерфейсов для запросов Dataverse, таких как CreateMultiple
, UpdateMultiple
и DeleteMultiple
, для достижения большей пропускной способности в пределах регулирования Dataverse. Дополнительная информация: Руководство для разработчиков. Сообщения массовых операций и Оптимизация производительности массовых операций
Автоматическое удаление данных
Политики срока жизни (TTL) гарантируют, что вы всегда будете работать с самой актуальной и точной информацией, и одновременно оптимизируют использование ресурсов и позволяют снизить риски. Текущее значение срока жизни для записи устанавливается в секундах и интерпретируется как разница со времени последнего изменения записи.
Гибкая схема со столбцами JSON
Эластичные таблицы позволяют хранить и запрашивать данные с различной структурой без необходимости использования предварительно определенных схем или миграций. Нет необходимости писать собственный код для сопоставления импортированных данных с фиксированной схемой. Дополнительная информация: Руководство разработчика. Запрос столбцов JSON в эластичных таблицах Эластичные таблицы позволяют хранить и запрашивать данные с различной структурой без необходимости использования предварительно определенных схем или миграций. Нет необходимости писать собственный код для сопоставления импортированных данных с фиксированной схемой. Дополнительная информация: Руководство разработчика. Запрос столбцов JSON в эластичных таблицах
Что необходимо учитывать при использовании эластичных таблиц
Хотя эластичные таблицы отлично подходят для обработки большого объема запросов в произвольных масштабах, наряду с плюсами имеются и некоторые минусы, о которых следует помнить:
- Эластичные таблицы не поддерживают транзакции с несколькими записями. Это означает, что несколько операций записи, выполняемых в рамках выполнения одного запроса, не являются транзакционными по отношению друг к другу. Например, если у вас есть синхронный шаг подключаемого модуля, зарегистрированный на этапе
PostOperation
дляCreate message
в эластичной таблице, ошибка в вашем подключаемом модуле не приведет к откату созданной записи в Dataverse. Проверки в предварительно выполняемых подключаемых модулях по-прежнему будут работать должным образом, поскольку они запускаются перед основным этапом. - Эластичные таблицы поддерживают строгую согласованность только в рамках логического сеанса. Вне контекста сеанса вы можете не сразу увидеть изменения в строке. Дополнительные сведения: Руководство разработчика. Уровень согласованности
- Эластичные таблицы не поддерживают фильтры для связанных таблиц при создании представлений, расширенного поиска или вообще каких-либо запросов с использованием API. Если вам часто нужно фильтровать данные по столбцам связанных таблиц, рекомендуем денормализировать столбцы из связанных таблиц, которые требуют фильтрации, в саму основную таблицу. Рассмотрим розничную сеть с двумя эластичными таблицами: таблицей клиентов и таблицей адресов. У одного клиента много адресов. Вы хотите вернуть результаты запроса для всех клиентов из таблицы клиентов, у которых значение города в таблице адресов — Нью-Йорк. В данном примере при запросе таблицы клиентов вам нужно применить фильтр к столбцу «Город» связанной таблицы адресов. В эластичных таблицах это не поддерживается. Один из способов реализовать такую фильтрацию — денормализовать столбец «Город» в таблице клиентов, чтобы все значения городов клиентов присутствовали в самой таблице клиентов.
Функции, поддерживаемые эластичными таблицами
- Операции создания, извлечения, обновления, удаления (CRUD), включая множественные операции API (для высокой пропускной способности), массовое удаление и запросы от подключаемых модулей.
- Связи:
- Один-ко-многим
- Многие-к-одному, когда таблица N является стандартной таблицей
- Владение записями, отслеживание, аудит, Mobile Offline и поиск Dataverse.
- Столбец файла с атрибутом типа файла
Поддержка функций безопасности
Эластичные таблицы подчиняются модели безопасности Dataverse.
При создании эластичной таблицы можно настроить следующие параметры:
- Владелец (пользователь или организация)
- Безопасность на уровне полей
Функции, в настоящее время не поддерживаемые эластичными таблицами
Функции таблиц, в настоящее время не поддерживаемые эластичными таблицами:
- Бизнес-правила
- Диаграммы
- Потоки бизнес-процессов
- Соединитель One Dataverse для Power BI
- Создание связей «многие-ко-многим» (N:N) со стандартными таблицами
- Альтернативный ключ
- Поиск повторяющихся данных
- Вычисляемые столбцы и столбцы свертки
- Столбцы валюты
- Сравнение столбцов в запросах
- Общий доступ к таблицам
- Составные индексы
- Каскадные операции: удалить, переподчинить, назначить, предоставить общий доступ, отменить общий доступ
- Упорядочение по столбцам подстановки
- Агрегатные запросы:
- Уникальное значение
attribute1
при использовании инструкции ORDER BY по значениюattribute2
- Разбиение на страницы при наличии нескольких инструкций DISTINCT
- Инструкция DISTINCT с несколькими инструкциями ORDER BY
- Совместное использование ORDER BY и GROUP BY
- GROUP BY по атрибуту link-entity (левое внешнее соединение)
- Инструкция DISTINCT применительно к таблицам, принадлежащим пользователям
- Уникальное значение
- Подключения таблиц
- Группы доступа
- Очереди
- Вложение
Типы данных столбцов, в настоящее время недоступные при использовании эластичных таблиц:
- Валюта.
- Формула
- Целочисленный формат, отличный от «Нет» (длительность, код языка и часовой пояс)
- Подстановка на основе параметра «Клиент»
Создание эластичной таблицы
Эластичная таблица создается точно так же, как и любая другая новая таблица в Dataverse.
- Войдите в Power Apps и выберите Таблицы на левой панели навигации. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
- На панели команд выберите Новая таблица > Настройка расширенных свойств.
- На правой панели свойств введите Отображаемое имя и Имя во множественном числе.
- Разверните Расширенные настройки, а затем выберите Эластичная в качестве Типа таблицы.
- Задайте требуемые свойства и выберите Сохранить.
Столбец срока жизни для эластичной таблицы создается автоматически. При необходимости вы можете добавить значение периода времени в секундах. По истечении указанного периода времени данные автоматически удаляются.
Дополнительная информация о таблицах: Расширенные параметры
Известные проблемы
- Когда для строки используется срок жизни (TTL), строка удаляется из эластичной таблицы по истечении этого срока жизни. Если она синхронизируется с озером данных с использованием Azure Synapse Link for Dataverse до истечения срока жизни, из озера данных она не удаляется.
- Восстановление на определенный момент времени не восстанавливает «обновленные» записи, поскольку резервное копирование обновлений не производится. Восстанавливаются только созданные и удаленные записи.
- Если определенный столбец в эластичной таблице удаляется, значение столбца не удаляется из строк таблицы, если в нем есть данные. Прежде чем удалять определенный столбец, удалите данные из всех строк этого столбца.
Эластичные таблицы большого объема и управление пределами регулирования API-интерфейса Dataverse
Использование сообщений массовых операций. Это позволяет вам увеличить пропускную способность в 10 раз при тех же лимитах регулирования API Dataverse. Разработчики могут ссылаться на дополнительные ссылки, представленные в разделе ниже.
Для разработчиков
Эластичные таблицы имеют не такое поведение и возможности, как стандартные таблицы, когда разработчики используют их с Dataverse API. Следующие статьи для разработчиков описывают эти различия:
- Эластичные таблицы
- Создание эластичных таблиц с помощью кода
- Использование эластичных таблиц с помощью кода
- Запрос столбцов JSON в эластичных таблицах
- Массовые операции с сообщениями (предварительная версия)
- Пример кода эластичной таблицы
- Отправка параллельных запросов
- Лимиты API, предусмотренные для защиты служб