Strategy ONE
在并行升级、元数据迁移或克隆期间保持统计信息的完整性
使用 Platform Analytics 进行并行升级或元数据迁移
Platform Analytics 是一种遥测工具,支持同时从多个 MicroStrategy 部署捕获遥测。平台分析有一种独特的方法来识别与智能服务器的每个元数据连接。
当管理员使用不同的元数据备份重新配置 Intelligence Server 时,平台分析会立即识别更改并开始记录与新元数据关联的新遥测数据。
根据您的目标,无需采取进一步行动。例如,如果您创建了第二个环境作为测试或沙盒环境。如果您想继续在同一个元数据存储库下捕获遥测,请参见下文:
如果以下任何参数发生变化,Platform Analytics 会将您的元数据视为新的,并在lu_元数据桌子:
- 元数据 _guid通过配置向导创建新的元数据时,会生成并存储唯一的元数据 GUID。
- 主持人托管数据库服务器的服务器。
- 港口数据库服务器运行的端口。
- 数据库元数据数据库名称。
- 用户 ID/sid此字段仅用于 Oracle 数据库。
上面列出的参数是根据元数据 DSN 中提供的值进行处理的。元数据 DSN 位于您的 odbc.ini
Linux 的文件和数据库连接 数据源管理员对于 Windows。
要恢复遥测并确保捕获所有遥测数据,请执行以下步骤:
- 保持您的平台分析服务正常运行。例如Zookeeper、Kafka、PAconsumer、REDIS等。
- 要选择性地确保 Platform Analytics 在进行配置更改之前已完成处理现有遥测数据,请检查偏移主题的遥测消息匹配数量,或者检查遥测服务器(例如 Kafka)和 Platform Analytics 存储库之间的差异是否可忽略不计:
- MicroStrategy 建议您检查以下核心主题或主题领域的消息:
- 是否报告统计信息
- 是否为文档统计信息
- 会话状态
- 要从 Telemetry Server 获取结果,请转到其安装目录(例如,opt/MicroStrategy/Messaging Services/Kafka/kafka xx.xxx/bin)并执行以下查询:复制
./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list <ip:port> --topic <topic> --time -1
要从 Platform Analytics 存储库获取结果,请通过数据库连接到存储库 查询工具或其他查询编辑器并执行以下查询:
复制select * from platform_analytics_wh.lu_topic_partition_offset where id like '%<topic>%'
- MicroStrategy 建议您检查以下核心主题或主题领域的消息:
-
通过数据库查询工具或其他查询编辑器连接到 Platform Analytics 存储库,并验证lu_元数据表已填充。
-
停止平台分析消费者(PAconsumer)进程。
-
使用DB Query工具,使用临时修改的metadata_id交换lu_metadata表中的metadata_id,以避免主键异常:
大纲
复制UPDATE lu_metadata SET metadata_id = 'TEMPORARY_MD_ID' WHERE metadata_db_connection = 'OLD_MD_CONNECTION';
UPDATE lu_metadata SET metadata_id = 'OLD_MD_ID' WHERE metadata_db_connection = 'NEW_MD_CONNECTION';
UPDATE lu_metadata SET metadata_id = 'NEW_MD_ID' WHERE metadata_db_connection = 'OLD_MD_CONNECTION';示例
复制UPDATE lu_metadata SET metadata_id = '7051653456108457985' WHERE metadata_db_connection = 'host=10.23.35.94;port=5432;database=platform_metadata;';
UPDATE lu_metadata SET metadata_id = '7051653456108457984' WHERE metadata_db_connection = 'host=127.0.0.1;port=5432;database=platform_metadata;';
UPDATE lu_metadata SET metadata_id = '7051946829721636864' WHERE metadata_db_connection = 'host=10.23.35.94;port=5432;database=platform_metadata;'; -
启动 Platform Analytics Consumer。
-
使用以下查询确认交易已映射到正确的metadata_id。新的条目应该具有旧的 metadata_id 和新的 metdata_db_connection。
复制SELECT object_name, m.metadata_id, metadata_db_connection, tran_timestamp
FROM access_transactions a
JOIN lu_object o ON a.object_id = o.object_id
JOIN lu_project p ON o.project_id = p.project_id
JOIN lu_metadata m ON p.metadata_id = m.metadata_id
WHERE tran_timestamp > NOW() - INTERVAL '5 MINUTE'
ORDER BY tran_timestamp DESC; -
使用以下查询清除 Platform Analytics Warehouse 以删除元数据中具有未使用的 metadata_id 的所有对象:
复制doTestBeforePurge: true
commandsToExecute:
# - commandName: DELETE_ALL_DELETED_OBJECTS
# - commandName: DELETE_ALL_DELETED_PROJECTS
- commandName: DELETE_ALL_OBJECTS_IN_METADATA
metadataList:
- METADATA_ID_TO_BE_PURGED
# - metadataId_2