1

我正在使用 Invantive Data Hub 和 Data Replicator 选项在我们的 Azure 数据库中复制 Exact Online。具有以下名称的表:dcd_ganw2_wpbz0_djmwe很好地自动创建并自动消失。列名如d63bb0afa6fe178c81ad30dc3a34b3.

但是,我还希望维护哪些用户友好名称和列名称的视图,因此我不必自己创建它们。

除了手动执行并将列名映射回正常的用户友好名称之外,还有其他方法可以自动执行此过程吗?

4

1 回答 1

0

您可以在 SQL Server 上与数据缓存表在同一数据库中自动创建视图。

请注意,Data Cache by Intent 的名称非常奇怪。一些云平台的数据集名称长度超过100个字符,列名超过1.000个字符,经过唯一化和逻辑化处理。

第 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:源平台的缩写,例如eolExact Online 和atAutoTask。
  • tablename:定义时表的名称,如projects.
  • shortname:定义时表的短名称(别名),例如pjtfor 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...在数据缓存中创建类似的表。
  • 然后在使用的数据库平台上打开您喜欢的 SQL 编辑器,例如 SQL Server Management Studio for SQL Server。
  • 查询表dc_tables并查找该列所在的lv_overall_active_flagY。这些是没有为其创建逻辑视图的表。
  • 更新这些如下:

    更新 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 设置 date_becomes_obsolete = getdate() where 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.500 倍。请注意,根据数据量,具有奇怪名称的表将根据数据量、统计信息等自动创建索引。通常您不必自己创建它们。

当您需要每个公司/分区的视图时,请使用lv_ptn_active_flaglv_ptn...列。

于 2017-06-30T09:12:45.543 回答