MicroStrategy ONE
병렬 업그레이드, 메타데이터 마이그레이션 또는 복제 중 통계 무결성 유지
Platform Analytics를 통한 병렬 업그레이드 또는 메타데이터 마이그레이션
Platform Analytics는 여러 곳에서 원격 측정 캡처를 지원하는 원격 측정 도구입니다. MicroStrategy 동시에 배포합니다. Platform Analytics에는 Intelligence Server에 대한 각 메타데이터 연결을 식별하는 고유한 방법이 있습니다.
관리자가 다른 메타데이터 백업으로 Intelligence Server를 재구성하면 Platform Analytics는 즉시 변경 사항을 인식하고 새 메타데이터와 연결된 새 원격 측정 기록을 시작합니다.
목표에 따라 추가 조치가 필요하지 않습니다. 예를 들어 테스트 또는 샌드박스 환경으로 두 번째 환경을 만든 경우입니다. 동일한 메타데이터 저장소에서 원격 분석을 계속 캡처하려면 아래를 참조하세요.
다음 매개변수 중 하나라도 변경되면 Platform Analytics는 메타데이터를 새로운 것으로 간주하고 lu_metadata 테이블:
- 메타데이터_guid 구성 마법사를 통해 새 메타데이터가 생성되면 고유한 메타데이터 GUID가 생성되어 저장됩니다.
- 주인 데이터베이스 서버를 호스팅하는 서버입니다.
- 포트 데이터베이스 서버가 실행되는 포트입니다.
- 데이터 베이스 메타데이터 데이터베이스 이름입니다.
- UID/SID 이 필드는 Oracle 데이터베이스에만 사용됩니다.
위에 나열된 매개변수는 메타데이터 DSN에 제공된 값을 기반으로 처리됩니다. 메타데이터 DSN은 다음 위치에 있습니다. odbc.ini
Linux용 파일과 ODBC 데이터 원본 관리자 Windows용.
원격 분석을 복원하고 선택적으로 모든 원격 분석이 캡처되었는지 확인하려면 다음 단계를 수행하세요.
- Platform Analytics 서비스를 계속해서 실행하세요. 예를 들어 Zookeeper, Kafka, PAconsumer, REDIS 등이 있습니다.
- 선택적으로 Platform Analytics가 구성을 변경하기 전에 기존 원격 측정 처리를 완료했는지 확인하려면 오프셋 주제에 대한 원격 측정 메시지 일치 수를 확인하거나 Telemetry Server(예: Kafka)와 Platform Analytics 저장소 간에 무시할 수 있는 양만큼 차이가 나는지 확인하십시오.
- MicroStrategy 다음 핵심 주제 또는 주제 영역의 메시지를 확인하도록 제안합니다.
- IsReportStats
- IsDocumentStats
- IsSessionStats
- 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 저장소에서 결과를 얻으려면 DB 쿼리 도구나 다른 쿼리 편집기를 통해 저장소에 연결하고 다음 쿼리를 실행하세요.
복사select * from platform_analytics_wh.lu_topic_partition_offset where id like '%<topic>%'
- MicroStrategy 다음 핵심 주제 또는 주제 영역의 메시지를 확인하도록 제안합니다.
-
DB 쿼리 도구 또는 다른 쿼리 편집기를 통해 Platform Analytics Repository에 연결하고 lu_metadata 테이블이 채워졌습니다.
-
Platform Analytics Consumer(PAconsumer) 프로세스를 중지합니다.
-
기본 키 예외를 방지하려면 DB 쿼리 도구를 사용하여 임시 수정된 메타데이터_id를 사용하여 lu_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에 매핑되었는지 확인하세요. 새 항목에는 새 metdata_db_connection과 함께 이전 메타데이터_id가 있어야 합니다.
복사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