第2章 Apicurio Registry データの移行
Apicurio Registry 2.x にデータを移行するには、既存の 1.1 デプロイメントからすべてのデータをエクスポートし、それを新しい 2.x デプロイメントにインポートする必要があります。Kafka アプリケーションのスキーマレジストリーとして Apicurio Registry を使用している場合は、Apicurio Registry に保存されるスキーマのグローバル識別子が各 Kafka メッセージにあるため、データの移行が重要になります。この識別子はレジストリーデータの移行時に保持される必要があります。
Apicurio Registry 2.x は、レジストリーデプロイメントからすべてのデータを一括インポート/エクスポートするための API を提供します。これにより、既存レジストリーからデータをインポートする際にすべての識別子が保持されることを保証します。エクスポート API は、アーティファクトのすべての情報が含まれるカスタムの .zip
ファイルをダウンロードします。インポート API はこの .zip
を受け入れ、単一のバッチですべてのアーティファクトをレジストリーに読み込みます。
Apicurio Registry 1.1 はインポート/エクスポート API を提供しません。ただし、バージョン 2.x は Apicurio Registry 1.1 と互換性のあるエクスポートツールを提供し、.zip
をエクスポートして、2.x レジストリーにインポートすることができます。このツールは、一般的な既存 API を使用してレジストリー内のすべてのコンテンツをエクスポートします。ただし、2.x エクスポート API よりもパフォーマンスが劣るため、1.1 レジストリーからエクスポートする場合にのみ使用してください。
前提条件
- エクスポート元の 1.1 サーバーの Apicurio Registry インスタンスと、インポート先の 2.x サーバーが稼働している。
- Red Hat カスタマーポータルから Apicurio Registry exportV1 ツール をダウンロードする。これは、コマンドラインで実行可能な Java アプリケーションです。
手順
exportV1
ツールを使用して Apicurio Registry 1.1 からすべてのデータをエクスポートします。このコマンドにより、現在のディレクトリーにregistry-export.zip
ファイルが生成されます。java -jar apicurio-registry-utils-exportV1-2.3.3.Final.jar http://old-registry.my-company.com/api
インポート API を使用して
.zip
ファイルを Apicurio Registry 2.x にインポートします。curl -X POST "http://new-registry.my-company.com/apis/registry/v2/admin/import" \ -H "Accept: application/json" -H "Content-Type: application/zip" \ --data-binary @registry-export.zip
以下のコマンドを実行して、count フィールドを比較することで、すべてのアーティファクトが新しい 2.x レジストリーにインポートされていることを確認します。
curl "http://old-registry.my-company.com/api/search/artifacts"
curl "http://new-registry.my-company.com/apis/registry/v2/search/artifacts"
関連情報
- REST API のインポート/エクスポートに関する詳細は、Red Hat build of Apicurio Registry ユーザーガイド を参照してください。
- バージョン 1.x から 2.x に移行するためのエクスポートツールの詳細は、1.x バージョン用の Apicurio Registry export utility を参照してください。