Автоматически установить логическое представление для таблицы репликатора данных в Exact Online
Я использую Invantive Data Hub с опцией Data Replicator для репликации Exact Online в нашей базе данных Azure. Таблицы с такими именами, как: dcd_ganw2_wpbz0_djmwe
красиво созданы автоматически и уходят автоматически. И имена столбцов, как d63bb0afa6fe178c81ad30dc3a34b3
,
Тем не менее, я хотел бы также, чтобы поддерживались представления, какие понятные имена и имена столбцов, поэтому мне не нужно создавать их самостоятельно.
Есть ли способ автоматизировать этот процесс, кроме как сделать это вручную и сопоставить имена столбцов с обычными понятными именами?
1 ответ
Вы можете автоматически создавать представления на SQL Server в той же базе данных, что и таблицы Data Cache.
Обратите внимание, что Data Cache намеренно имеет такие странные имена. Некоторые облачные платформы имеют наборы данных с именами, длина которых превышает 100 символов, и имена столбцов, содержащие более 1000 символов после того, как они стали уникальными и логичными.
Выпуск 2
Для выпуска 2 все намного проще, чем для выпуска 1.
Настройки можно найти с помощью:
select * from dc_settings@datacache
Или используя:
local data cache
Или с помощью кнопки на ленте.
И параметры могут быть изменены с помощью:
alter persistent cache set overall view maintain true; /* New tables automatically get an overall view created. */
alter persistent cache set overall view prefix '{sourceabbreviation}_';
alter persistent cache set overall view postfix '_v';
И используя формы в пользовательском интерфейсе.
В качестве заполнителей в префиксе и постфиксе вы можете использовать:
- sourceabbreviation: сокращение от исходной платформы, например
eol
для точного онлайн иat
для автозадачи. - tablename: имя таблицы, когда она определена, например,
projects
, - shortname: короткое имя (псевдоним) таблицы, если оно определено, например
pjt
заprojects
,
Или за столом:
alter persistent cache table FULLNAME logical overall view maintain true;
alter persistent cache table FULLNAME logical overall view name 'NAME_V';
Массовые обновления могут быть вызваны с помощью:
alter persistent cache refresh
Чтобы принудительно удалить все версии разделов таблицы кеша в состоянии READY:
alter persisten cache purge ready tables
Массивная начальная загрузка для всех наборов данных в области может быть вызвана с помощью:
alter persistent cache load
Для такой платформы, как Salesforce или Dynamics CRM, такая начальная загрузка может занять несколько часов!
Выпуск 1
Для выпуска 1 вы можете указать отображение следующим образом:
- Прежде всего убедитесь, что вы попали в набор данных облачного приложения; это гарантирует, что таблица, как
dcd_ganw2...
создается в Data Cache. - Затем откройте ваш любимый редактор SQL на используемой платформе базы данных, такой как SQL Server Management Studio для SQL Server.
- Запросить таблицу
dc_tables
и искать строки, где столбецlv_overall_active_flag
являетсяY
, Это таблицы, для которых не созданы логические представления. Обновите их следующим образом:
обновить набор dc_tables lv_overall_active_flag = 'Y', lv_overall_view_name = 'eol_SOME_NAME_r', где id = UNIQUE-ID
_r
это просто стандартный постфикс, но может быть что-то еще. Но убедитесь, что имя представления является допустимым идентификатором на платформе.Также убедитесь, что все уже кэшированные данные считаются устаревшими, например, используя подсказку
/*+ ods(true, interval '1 minutes') */
в вашем SQL или просто массивным путем:обновить dc_table_partition_versions set date_becomes_obsolete = getdate() где tbe_id = UNIQUE-ID
Теперь снова выйдите из движка Invantive SQL. Не забудь!
- Войдите в систему Invantive SQL снова.
- Нажмите на набор данных в другой раз.
- Кэш данных облачных данных будет перестроен.
- Будет создан вид, содержащий данные по всем выбранным разделам. На Exact Online, в которой могут участвовать сотни компаний, на Salesforce только одна и т. Д.
Теперь вы можете выполнить следующий запрос в SQL Server Management Studio, PGAdmin или в любом другом случае:
выберите * из eol_SOME_NAME_r
Производительность будет намного лучше, чем встроенные запросы в Exact Online или Salesforce, как правило, в диапазоне от 50 до 2.500x быстрее. Обратите внимание, что в зависимости от объема данных таблицы со странными именами будут автоматически создавать индексы, основанные на объеме, статистике и т. Д. В целом вам не нужно создавать их самостоятельно.
Когда вам нужно посмотреть на компанию / раздел, пожалуйста, используйте lv_ptn_active_flag
а также lv_ptn...
колонны.