В этой статье представлена информация по часто задаваемым вопросам об экспорте данных таблиц Microsoft Dataverse в Azure Synapse Analytics и Azure Data Lake.
Могу ли я вручную выполнять такие задачи, как создание, обновление, удаление или настройка политик автоматического удаления для файлов данных в подключенной службе хранилища Azure?
Файлы данных не должны изменяться клиентом, и никакие файлы клиентов не должны помещаться в папки данных.
Примечание
Чтобы удалить устаревшие и инертные данные из озера данных без нарушения ссылки Azure Synapse Link, воспользуйтесь функцией Запрос и анализ добавочных обновлений
Как получить доступ к своим отношениям таблицы?
Для доступа к отношениям "многие ко многим" отношение доступно в виде таблицы, которую можно выбрать на странице Добавить таблицы для новой ссылки и на странице Управление таблицами для уже существующей ссылки.
Примечание
Все данные отношения по умолчанию находятся в режиме "Только добавление", если они записаны в формате CSV.
Как я могу получить ориентировочную стоимость перед добавлением Azure Synapse Link?
Azure Synapse Link это бесплатная функция в Dataverse. Использование Azure Synapse Link for Dataverse не влечет за собой дополнительных расходов в Dataverse. Однако учтите потенциальные затраты на использование службы Azure:
- Хранилище данных в Azure Data Lake Storage 2-го поколения: Цены на Azure Storage Data Lake 2-го поколения | Microsoft Azure
- Стоимость использования данных (например, рабочая область Synapse): Цены - Azure Synapse Analytics | Microsoft Azure Полную информацию об управлении затратами Microsoft см. в разделе: Планирование управления расходами Azure — Управление затратами Microsoft | Microsoft Learn
Что происходит, когда я добавляю столбец?
Когда вы добавляете новый столбец в таблицу в источнике, он также добавляется в конец файла в месте назначения в соответствующем разделе файла. В то время как строки, которые существовали до добавления столбца, не отображаются в новом столбце, в новых или обновленных строках отображается только что добавленный столбец.
Что происходит, когда я удаляю столбец?
Когда вы удаляете столбец из таблицы в источнике, столбец не удаляется из места назначения. Вместо этого строки больше не обновляются и помечаются как NULL, но с сохранением предыдущих строк.
Что произойдет, если я изменю тип данных столбца?
Изменение типа данных столбца является критическим изменением, и вам требуется отменить связь и установить ее заново.
Что происходит, когда я удаляю строку?
Удаление строки обрабатывается по-разному в зависимости от того, какие параметры записи данных вы выбрали:
- Обновление на месте в формате CSV: это режим по умолчанию. Когда вы удаляете строку таблицы в этом режиме, строка также удаляется из соответствующего раздела данных в Azure Data Lake. Другими словами, данные безвозвратно удаляются из места назначения.
- Только добавление с форматом CSV и добавочным обновлением папок. В этом режиме когда строка таблицы Dataverse удаляется, она не удаляется физически из места назначения. Вместо этого добавляется строка в файл и для нее устанавливается значение
isDeleted=True
в соответствующем разделе данных в Azure Data Lake. - При экспорте в формат Delta Lake: Azure Synapse Link выполняется обратимое удаление данных во время следующего цикла дельта-синхронизации, а затем необратимое удаление через 30 дней.
Почему я не вижу заголовка столбца в экспортированном файле?
Azure Synapse Link следует модели Common Data Model, чтобы сделать возможным общий доступ к данным и их значению для всех приложений и бизнес-процессов, таких как Microsoft Power Apps, Power BI, Dynamics 365 и Azure. В каждой папке CDM метаданные, такие как заголовок столбца, хранятся в файле model.json. Для получения дополнительных сведений см. раздел: Common Data Model и Azure Data Lake Storage 2-го поколения | Microsoft Learn
Почему в файле Model.json увеличивается или меняется длина для типов данных и не сохраняется то, что определено в Dataverse?
В Model.json сохраняется длина базы данных для размера столбца. В Dataverse существует понятие длины базы данных для каждого столбца. Если вы создадите столбец размером 200, а затем уменьшите его до 100, Dataverse все равно разрешит вашим существующим данным присутствовать в Dataverse . Это достигается путем сохранения значения параметра DBLength
на уровне 200, а параметраMaxLength
на уровне 100. В Model.json вы видите DBLength
, и если вы используете его для нисходящих процессов, вы никогда не выделяете меньше места для своих столбцов Dataverse.
Примечание
Поля MEMO определяются как varchar(max)
с максимальной длиной по умолчанию 9999.
Какие форматы даты и времени можно ожидать в экспортируемых таблицах Dataverse?
Есть три формата даты и времени, которые можно ожидать в экспортируемых таблицах Dataverse.
Имя столбца | Формат. | Тип данных | Пример |
---|---|---|---|
SinkCreatedOn и SinkModifiedOn | M/d/yyyy H:mm:ss tt | datetime | 6/28/2021 4:34:35 PM |
CreatedOn | yyyy-MM-dd'T'HH:mm:ss.sssssssXXX | datetimeOffset | 2018-05-25T16:21:09.0000000+00:00 |
Все другие столбцы | yyyy-MM-dd'T'HH:mm:ss'Z' | datetime | 2021-06-25T16:21:12Z |
Примечание
Тип данных CreatedOn изменен с datetime
на datetimeOffset
29.07.2022. Чтобы отредактировать формат типа данных для таблицы, созданной до изменения, отбросьте и снова добавьте таблицу.
Для столбца даты и времени в Dataverse можно выбирать различные варианты поведения, что обновляет формат типа данных. Дополнительные сведения: Поведение и формат столбца "Дата и время"
Почему для некоторых таблиц Dataverse я вижу имена файлов 1.csv или 1_001.csv вместо обычных имен файлов, разделенных по дате и времени?
Такое поведение ожидается, если вы выбираете режим экспорта "только добавление" и имеете таблицы без допустимого столбца CreatedOn. BLOB-объекты организованы в такие файлы, как 1.csv, 2.csv (с использованием специального секционирования из-за отсутствия допустимой даты создания). Когда размер любого раздела приближается к 95 % от MaxBlockPerBlobLimit, система автоматически создает новый файл, показанный здесь как 1_001.csv.
Когда мне следует использовать годовую или ежемесячную стратегию разделения?
Для таблиц Dataverse, объем данных которых в течение года велик, рекомендуется использовать ежемесячные разделы. Это приведет к уменьшению размера файлов и повышению производительности. Кроме того, если строки в таблицах Dataverse часто обновляются, разделение на несколько файлов меньшего размера помогает повысить производительность в случае сценариев обновления на месте. Delta Lake доступен только с ежегодным разделением из-за его более высокой производительности по сравнению с форматом CSV.
Что такое режим «только добавление» и в чем разница между режимом «только добавление» и режимом «обновление на месте»?
В режиме «только добавление» инкрементальные данные из таблиц Dataverse добавляются к соответствующей секции файла в озере. Дополнительные сведения: Дополнительные параметры конфигурации в Azure Synapse Link
Когда использовать режим «только добавление» для просмотра истории изменений?
Режим "Только добавление" — рекомендуемый вариант для записи данных таблиц Dataverse в озеро, особенно когда объемы данных велики в разделе с часто изменяющимися данными. Опять же, это часто используемый и настоятельно рекомендуемый вариант для корпоративных клиентов. Кроме того, вы можете использовать этот режим для сценариев, в которых целью является инкрементный просмотр изменений из Dataverse и обработка изменений для сценариев ETL, ИИ и ML. Режим "Только добавление" предоставляет историю изменений вместо последнего изменения или обновления на месте и включает несколько временных рядов из сценариев ИИ, таких как прогноз или прогнозная аналитика на основе исторических значений.
Как извлечь самую актуальную строку каждой записи и исключить удаленные строки при экспорте данных в режиме «только добавление»?
В режиме "только добавление" вам следует определить последнюю версию записи с тем же идентификатором, используя VersionNumber
и SinkModifiedOn
, а затем применить isDeleted=0
к последней версии.
Почему я вижу повторяющиеся номера версий при экспорте данных в режиме «только добавление»?
Для режима «только добавление», если Azure Synapse Link for Dataverse не получает подтверждения от озера данных Azure о том, что данные были зафиксированы, по какой-либо причине (например, из-за задержек в сети), Azure Synapse Link повторяет попытку и снова фиксирует данные. Потребление на нижестоящих этапах должно быть устойчивым к этому сценарию путем фильтрации данных с помощью SinkModifiedOn
.
Почему я вижу различия в столбцах Sinkmodifiedon и Modifiedon?
Это ожидаемо. Modifiedon
— дата и время изменения записи в Dataverse; Sinkmodifiedon
— дата и время изменения записи в озере данных.
Какие таблицы Dataverse не поддерживаются для экспорта?
Любая таблица, для которой не включено отслеживание изменений, не поддерживается в дополнение к следующим системным таблицам:
- Вложение
- Календарь
- Calendarrule
Примечание
Вы можете добавить таблицу аудита для экспорта, используя Azure Synapse Link for Dataverse. Однако экспорт таблицы аудита поддерживается только с профилями Delta Lake.
Я использую функцию экспорта в Delta Lake. Могу ли я остановить задание Apache Spark или изменить время выполнения?
Задание преобразования Delta Lake запускается при изменении данных в настроенном интервале времени. Нет возможности остановить или приостановить работу пула Apache Spark. Однако вы можете изменить временной интервал после создания связи в разделе "Управление таблицами > Расширенный временной интервал".
Поддерживается ли столбцы подстановки Azure Synapse Link?
Столбцы подстановки состоят из идентификатора и значения. Значения подстановки изменяются только в корневой таблице. Чтобы лучше отразить значение столбца подстановки, мы рекомендуем объединение с исходной корневой таблицей, чтобы получить последнее значение.
Поддерживает ли Azure Synapse Link вычисляемые столбцы?
В Dataverse вычисляемые столбцы сохраняют только информацию о формуле, а реальное значение зависит от столбца базовой таблицы. Таким образом, вычисляемые столбцы поддерживаются только в том случае, если все столбцы расположены в одной экспортированной таблице.
Для каких таблиц Dataverse по умолчанию используется режим «только добавление»?
Все таблицы, в которых нет поля createdOn, по умолчанию синхронизируются в режиме "только добавление". Сюда входят таблицы отношений и таблица ActivityParty.
Почему я вижу сообщение об ошибке "Невозможно вывести содержимое каталога по пути"?
- Данные Dataverse хранятся в подключенном контейнере хранения. Для выполнения операций чтения и запроса через Synapse Workspace вам нужна роль «Участник данных хранилища BLOB-объектов» в связанной учетной записи хранения.
- Если вы решите экспортировать данные в формате Delta Lake, ваш файл CSV будет очищен после преобразования Delta Lake. Вам необходимо запросить данные с помощью неразделенных таблиц через Synapse Workspace.
Почему я вижу сообщение об ошибке "Массовая загрузка невозможна, так как файл неполный или не может быть прочитан (только CSV-файл)"?
Данные Dataverse могут непрерывно изменяться путем создания, обновления и удаления транзакций. Эта ошибка вызвана изменением базового файла при чтении из него данных. Таким образом, для таблиц с непрерывными изменениями измените свой конвейер потребления, чтобы использовать данные моментальных снимков (секционированные таблицы) для потребления. Дополнительная информация: Устранение неполадок бессерверного пула SQL
Как я могу использовать Azure Synapse Link для архивирования важных данных?
Azure Synapse Link for Dataverse предназначен для аналитических целей. Мы рекомендуем клиентам использовать долгосрочное хранение в целях архивирования. Подробнее: Обзор долгосрочного хранения данных Dataverse
Почему я не вижу никаких изменений данных в озере данных, когда записи были удалены в Dataverse?
При любом прямом вызове SQL для удаления записи служба Azure Synapse Link for Dataverse не запускается, поскольку не вызывается BPO.Delete. Пример функции см. в разделе Как очистить унаследованный доступ.