灾难恢复¶
Snowflake Connector for Google Analytics Aggregate Data 需遵守 Connector 条款。
GAAD 连接器会在应用程序实例中存储有关已配置报告及其自身配置的元数据。当应用程序被删除或损坏时,这种内部状态就会丢失。为了避免这种情况,连接器会在特定事件(如以下事件)期间,将元数据与引入的数据一起导出到目标数据库:
配置新报告
删除报告
从 Google Analytics 获取新批次数据
更改报告的获取页面大小
导出过程会在目标架构中创建几个表来存储连接器的内部状态。这些表不包含引入的数据,但对于在应用程序丢弃或损坏后恢复连接器的状态至关重要。复制时,这些表还可用于恢复不同 Snowflake 账户上连接器的状态。导出过程会创建以下表格:
APP_CONFIG_SFSDKEXPORT_V1
APP_STATE_SFSDKEXPORT_V1
CONNECTOR_ERRORS_LOG_SFSDKEXPORT_V1
INGESTION_PROCESS_SFSDKEXPORT_V1
INGESTION_RUN_SFSDKEXPORT_V1
NOTIFICATIONS_STATE_SFSDKEXPORT_V1
RESOURCE_INGESTION_DEFINITION_SFSDKEXPORT_V1
将现有数据和报告导入连接器的新实例。¶
如果 GAAD 连接器已卸载或损坏,只要目标数据库没有被丢弃,就有可能恢复引入以前配置的报告。连接器中配置的报告元数据与引入的数据一起保存在目标数据库中。要在安装新的连接器实例后继续引入数据,请按照以下步骤操作:
配置连接器。
按照 安装并配置 Snowflake Connector for Google Analytics Aggregate Data 中的说明配置连接器。选择目标数据库和架构时,请选择包含前一个连接器实例引入的数据的现有架构。
授予连接器所需的权限。
备注
如果使用 Snowsight 安装和配置新的连接器,则不需要此步骤。仅在使用 SQL 命令安装连接器时执行。
执行以下命令,确保新安装的 GAAD 连接器成为现有架构中所有对象的所有者:
system$grant_ownership_to_application('your_application_instance', true, 'database', 'schema');
其中 database 和 schema 分别是现有数据库和架构的名称。
暂停连接器。
call pause_connector();
导入现有数据和报告。
在已安装应用程序的上下文中执行以下命令,导入现有数据和报告:
call import_state(force => true);
将 force 参数设置 为**true**,以确保对新安装的连接器所做的任何更改都会被旧安装的报告和内部数据覆盖。
恢复连接器
call resume_connector();
此时,Snowflake Connector for Google Analytics Aggregate Data 连接器的新实例应恢复对现有报告的引入。
将目标数据库和连接器状态复制到另一个 Snowflake 部署中¶
本节介绍复制目标数据库内容的步骤。目标数据库包含引入的数据和连接器中配置的报告的元数据。如果连接器或 GAAD 连接器下载的数据对您的业务至关重要,请考虑在不同区域设置一个辅助 Snowflake 账户,并将目标数据库复制到辅助账户。
术语和定义¶
目标数据库 - 配置为 GAAD 连接器引入数据的目标数据库。这也是连接器的内部状态被导出到的数据库。
下沉数据库 - 配置为 GAAD 连接器引入数据的目标的架构。
内部状态 - GAAD 连接器的内部数据和配置,例如报告配置、引入状态和错误日志。
GAAD 实例 - 在 Snowflake 账户上安装的 Snowflake Connector for Google Analytics Aggregate Data 连接器实例。
GAAD - Snowflake Connector for Google Analytics Aggregate Data
ACCOUNT_PRIM - 主账户的示例名称
ACCOUNT_SEC - 辅助(副本)账户的示例名称
APP_PRIM - 在主账户上安装的 Snowflake Connector for Google Analytics Aggregate Data 连接器实例名称示例
APP_SEC - 在辅助账户上安装的示例 Snowflake Connector for Google Analytics Aggregate Data 连接器实例名称
DST_DB.DST_SCHEMA - GAAD 实例(数据在此引入,连接器的内部状态在此保存)的目标架构名称示例
DST_DB - 为 GAAD 连接器配置的目标数据库名称示例
MYORG - 您所在组织的示例名称(两个账户必须在同一个组织内)
简介¶
Snowflake Connector for Google Analytics Aggregate Data 连接器(GAAD 实例)安装到您的账户后,会显示为一个包含数据、程序等内容的普通数据库。不过,不能按复制普通数据库的方式将其复制到辅助账户。目前,还没有将 GAAD 实例及其内部状态复制到副本账户的本地机制。具体来说,已安装的应用程序无法添加到复制组。
连接器不直接复制 GAAD 实例,而是将已配置报告的元数据导出到在连接器设置过程中配置的目标架构。状态保存在这里,可以与引入的数据一起复制。
例如,如果您将连接器配置为将数据引入目标架构 DEST_DATABASE.PUBLIC,连接器就会自动将其内部状态保存到该架构中。然后,您可以使用以下命令复制引入的数据和内部状态:
create replication group gaad_dest_database_group object_types = databases allowed_databases = dst_db allowed_accounts = ...;
设置引入数据和配置报告的复制¶
备注
始终测试灾难恢复程序,以验证数据和状态复制是否按预期运行。
备注
以下部分包含适用于所有版本 Snowflake 的说明。
备注
在继续之前,请熟悉 Snowflake 复制 https://docs.snowflake.cn/en/user-guide/account-replication-intro
** 在主账户上安装 GAAD**
在主账户上安装和配置 Snowflake Connector for Google Analytics Aggregate Data。有关详细说明,请参阅 安装并配置 Snowflake Connector for Google Analytics Aggregate Data。
在主账户上,创建一个复制组,并将 DST_DB 添加为允许的数据库:
-- on primary account create replication group gaad_rep_group_prim object_types = databases allowed_databases = dst_db allowed_accounts = myorg.account_sec replication_schedule = '10 minute';
在辅助账户上设置复制
要将 DST_DB 从主账户复制到辅助账户,请在辅助账户上创建一个新的复制组:
-- on secondary account create replication group gaad_rep_group_sec as replica of myorg.account_prim.gaad_rep_group_prim; alter replication group gaad_rep_group_sec refresh;
此时,应在辅助账户上创建一个只读的 DST_DB 数据库,并根据配置的时间表复制主账户的数据。
** 在辅助账户上安装 GAAD**
以与主账户相同的方式在辅助账户上安装和配置 Snowflake Connector for Google Analytics Aggregate Data。指向实例,将数据引入复制的数据库和架构。当复制正在进行时(直到删除辅助账户上的复制组),数据库处于只读模式。GAAD 可以配置为使用只读数据库作为引入目标;但是,在数据库转换为读写模式之前,它不能引入数据。
在二级账户上配置连接器后,执行以下操作暂停连接器:
-- on secondary account call pause_connector();
此时,GAAD 连接器已安装完毕,可在主账户出现故障时随时接管。
恢复程序¶
当主部署不可用时,请在辅助账户上配置 GAAD 实例以继续引入。
备注
所有步骤都必须在辅助账户上执行。
弃用复制组
弃用辅助账户上的复制组,将复制的数据库过渡到读写模式:
drop replication group gaad_rep_group_sec;
将现有数据库对象的所有权授予连接器
执行以下命令,将复制架构中所有对象的所有权授予 GAAD 连接器:
call system$grant_ownership_to_application('app_sec', true, 'dst_db', 'dst_schema');
导入状态
使用从主账户复制的状态初始化连接器:
call import_state(false);
恢复连接器
通过执行以下命令恢复连接器:
call resume_connector();
此时,辅助账户上的 GAAD 连接器应恢复引入数据,从主账户上的 GAAD 停止的地方继续。
备注
确保主账户和辅助账户属于同一组织。复制计划可根据需求进行调整。