Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эластичная таблица — это таблица, управление которой осуществляет 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 для Dataverse до истечения срока жизни, она не будет удалена из озера данных.
- Восстановление на определенный момент времени не восстанавливает «обновленные» записи, поскольку резервное копирование обновлений не производится. Восстанавливаются только созданные и удаленные записи.
- Если определенный столбец в эластичной таблице удаляется, значение столбца не удаляется из строк таблицы, если в нем есть данные. Прежде чем удалять определенный столбец, удалите данные из всех строк этого столбца.
Эластичные таблицы большого объема и управление пределами регулирования API-интерфейса Dataverse
Использование сообщений массовых операций. Это позволяет вам увеличить пропускную способность в 10 раз при тех же лимитах регулирования API Dataverse. Разработчики могут ссылаться на дополнительные ссылки, представленные в разделе ниже.
Для разработчиков
Эластичные таблицы имеют не такое поведение и возможности, как стандартные таблицы, когда разработчики используют их с Dataverse API. Следующие статьи для разработчиков описывают эти различия:
- Эластичные таблицы
- Создание эластичных таблиц с помощью кода
- Использование эластичных таблиц с помощью кода
- Запрос столбцов JSON в эластичных таблицах
- Массовые операции с сообщениями (предварительная версия)
- Пример кода эластичной таблицы
- Отправка параллельных запросов
- Лимиты API, предусмотренные для защиты служб