MicroStrategy ONE

並列アップグレード、メタデータ移行、またはクローン時の統計の統合維持

Platform Analytics を使用した並列アップグレードまたはメタデータ移行

Platform Analytics は、複数の MicroStrategy 配置から同時にテレメトリーを記録することができるテレメトリー ツールです。Platform Analytics は独自の方法で、メタデータの Intelligence Server への各接続を認識します。

管理者が別のメタデータ バックアップを使用して Intelligence Server を再構成すると、Platform Analytics はすぐに変更を認識し、新しいメタデータに関連付けられた新しいテレメトリの記録を開始します。

目的によっては、追加の操作は必要ありません。たとえば、テストまたはサンドボックス環境として 2 つめの環境を作成した場合などです。同じメタデータ リポジトリのテレメトリーを記録し続けたい場合は、以下を参照してください。

以下のパラメータのいずれかが変更された場合、Platform Analyticsはメタデータを新しいものとみなし、 lu_メタデータテーブル:

  • メタデータ GUID構成ウィザードを使用して新しいメタデータが作成されると、一意のメタデータ GUID が生成され、保存されます。
  • ホストデータベース サーバーをホストするサーバー。
  • ポートデータベース サーバーが実行されるポート。
  • データベースメタデータ データベース名。
  • ユーザID/SIDこのフィールドは Oracle データベースでのみ使用されます。

前述のパラメーターは、メタデータ DSN の値に基づいて処理されます。メタデータDSNは、odbc.ini Linux用のファイルとODBC データ ソース アドミニストレーター Windows 用。

テレメトリーを復元したり、オプションですべてのテレメトリーを確実に記録するには、以下の手順を実行します。

  1. Platform Analytics サービスを起動し、実行したままにします。たとえば、Zookeeper、Kafka、PAconsumer、REDIS などです。
  2. オプションで、構成変更を行う前に Platform Analytics が既存のテレメトリの処理を完了していることを確認するには、オフセット トピックのテレメトリ メッセージの一致数を確認するか、テレメトリ サーバー (Kafka など) と Platform Analytics リポジトリの間でテレメトリ メッセージの差が無視できるほど小さいかどうかを確認します。
    1. MicroStrategy では、次のコア トピックまたは主題領域からのメッセージを確認することをお勧めします。
      1. レポート統計
      2. ドキュメント統計
      3. セッション統計
    2. 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
    3. Platform Analytics リポジトリから結果を取得するには、DB クエリ ツールまたは別のクエリ エディターを使用してリポジトリに接続し、次のクエリを実行します。

      コピー
      select * from platform_analytics_wh.lu_topic_partition_offset where id like '%<topic>%'
  3. 新しいメタデータでインテリジェンス サーバーを再構成する

  4. DBクエリツールまたは別のクエリエディタを使用してPlatform Analyticsリポジトリに接続し、 lu_メタデータテーブルにデータが入力されます。

  5. Platform Analytics Consumer (Paconsumer) プロセスを停止します。

  6. 主要な例外を回避するために、DB クエリ ツールを使用し、一時的に変更された metadata_id を使用して、lu_metadata テーブル内の metadata_ids を置き換えます。

    アウトライン

    コピー
    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 Consumer を起動します。

  8. 以下のクエリを使用して、トランザクションが適切な metadata_id にマッピングされていることを確認します。新しいエントリには、新しい metdata_db_connection とともに古い metadata_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. 使用されない metadata_id を含むメタデータ内のすべてのオブジェクトを削除するには、以下のクエリを使用して、Platform Analytics Warehouse をパージします。

    コピー
    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