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


Создание и изменение эластичных таблиц

Эластичная таблица — это таблица, управление которой осуществляет 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.

  1. Войдите в Power Apps и выберите Таблицы на левой панели навигации. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
  2. На панели команд выберите Новая таблица>Настройка расширенных свойств.
  3. На правой панели свойств введите Отображаемое имя и Имя во множественном числе.
  4. Разверните Расширенные настройки, а затем выберите Эластичная в качестве Типа таблицы. Выберите Эластичная в качестве свойства Тип таблицы
  5. Задайте требуемые свойства и выберите Сохранить.

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

Дополнительная информация о таблицах: Расширенные параметры

Известные проблемы

  • Когда для строки используется срок жизни (TTL), строка удаляется из эластичной таблицы по истечении этого срока жизни. Если она синхронизирована с озером данных с помощью Azure Synapse Link для Dataverse до истечения срока жизни, она не будет удалена из озера данных.
  • Восстановление на определенный момент времени не восстанавливает «обновленные» записи, поскольку резервное копирование обновлений не производится. Восстанавливаются только созданные и удаленные записи.
  • Если определенный столбец в эластичной таблице удаляется, значение столбца не удаляется из строк таблицы, если в нем есть данные. Прежде чем удалять определенный столбец, удалите данные из всех строк этого столбца.

Эластичные таблицы большого объема и управление пределами регулирования API-интерфейса Dataverse

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

Для разработчиков

Эластичные таблицы имеют не такое поведение и возможности, как стандартные таблицы, когда разработчики используют их с Dataverse API. Следующие статьи для разработчиков описывают эти различия:

См. также

Создание и изменение таблиц с помощью Power Apps