MicroStrategy ONE

병렬 업그레이드, 메타데이터 마이그레이션 또는 복제 중에 통계 Integrity 유지

Platform Analytics를 사용한 병렬 업그레이드 또는 메타데이터 마이그레이션

Platform Analytics는 여러 MicroStrategy 배포에서 동시에 텔레메트리 캡처를 지원하는 텔레메트리 도구입니다. Platform Analytics에는 Intelligence Server에 대한 각 메타데이터 연결을 식별하는 고유한 방법이 있습니다.

관리자가 다른 메타데이터 백업으로 Intelligence Server를 재구성하는 경우 Platform Analytics는 변경 사항을 즉시 인식하고 새 메타데이터와 연결된 새 텔레메트리를 기록하기 시작합니다.

목표에 따라 추가 작업이 필요하지 않습니다. 예를 들어 두 번째 환경을 테스트 또는 샌드박스 환경으로 만든 경우입니다. 동일한 메타데이터 저장소에서 텔레메트리를 계속 캡처하려면 아래를 참조하십시오.

다음 매개 변수가 변경되는 경우 Platform Analytics는 메타데이터를 새로운 것으로 간주하여 li_metadata테이블:

  • 메타데이터_가이드구성 마법사를 통해 새 메타데이터가 생성될 때 고유 메타데이터 GUID가 생성 및 저장됩니다.
  • 호스트데이터베이스 서버를 호스팅하는 서버입니다.
  • 포트데이터베이스 서버가 실행되는 포트입니다.
  • 개 데이터베이스메타데이터 데이터베이스 이름입니다.
  • id/sid이 필드는 Oracle 데이터베이스에만 사용됩니다.

위에 나열된 매개 변수는 메타데이터 DSN에 제공되는 값을 기반으로 처리됩니다. 메타데이터 DSN은 odbc.ini Linux용 파일 및 ODBC  데이터 소스 관리자 .

텔레메트리를 복원하고 선택적으로 모든 텔레메트리가 캡처되었는지 확인하려면 다음 단계를 수행합니다.

  1. Platform Analytics 서비스를 최신 상태로 실행하십시오. 예를 들어, Zookeeper, Kafka, Pconuser, Redis 등
  2. 선택적으로 Platform Analytics가 구성을 변경하기 전에 기존 텔레메트리 처리를 완료했는지 확인하려면 오프셋 주제에 대한 텔레메트리 메시지 일치 수를 확인하거나 텔레메트리 서버(예: Kafka)와 Platform Analytics 저장소 사이의 차이가 무시할 수 있는 양만큼 차이가 있는 경우:
    1. MicroStrategy 다음 핵심 주제 또는 제목 영역에서 메시지를 확인할 것을 권장합니다.
      1. IsReportstats
      2. IsDocumentstats
      3. Dossier에서
    2. Telemetry Server에서 결과를 가져오려면 설치 디렉터리(예: pt/ MicroStrategy/Messing Services/Kafka/kafka xx.xx/빈)로 이동하여 다음 쿼리를 실행합니다.
      복사
      ./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list <ip:port> --topic <topic> --time -1
    3. Platform Analytics 저장소에서 결과를 가져오려면 DB를 통해 저장소에 연결하십시오.  쿼리 도구 또는 다른 쿼리 편집기를 열고 다음 쿼리를 실행합니다.

      복사
      select * from platform_analytics_wh.lu_topic_partition_offset where id like '%<topic>%'
  3. 새 메타데이터로 Intelligence Server 재구성 .

  4. DB 쿼리 도구 또는 다른 쿼리 편집기를 통해 Platform Analytics 저장소에 연결하고 li_metadata개의 테이블이 채워졌습니다.

  5. Platform Analytics 소비자(PA Consumer) 프로세스를 중지합니다.

  6. 기본 키 예외를 방지하려면 DB 쿼리 도구와 임시 수정된 메타데이터_id로 li_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;';
  7. Platform Analytics 소비자를 시작합니다.

  8. 다음 쿼리를 사용하여 트랜잭션이 올바른 메타데이터_id에 매핑되었는지 확인합니다. 새 항목에는 새 메타데이터_DB_ 연결이 포함된 이전 메타데이터_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;
  9. 다음 쿼리를 사용하여 사용되지 않는 메타데이터_id가 있는 메타데이터에서 모든 개체를 삭제하도록 Platform Analytics 웨어하우스를 제거합니다.

    복사
    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