BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Cloud SpannerがLiquibaseのサポートを追加

Cloud SpannerがLiquibaseのサポートを追加

原文(投稿日:2021/03/04)へのリンク

Google Cloudは最近、Cloud SpannerでLiquibaseのサポートを追加した。新しい拡張機能により、開発者はオープンソースデータベースライブラリを使用して、Google Cloud上でグローバルに分散されたSQLデータベースのスキーマ変更を管理および自動化できるようになった。

2017年に導入されたCloud Spannerは、Google Cloud Platform上のグローバルに分散されたスケーラブルなデータベースサービスである。そして、シャーディングやクラスタリングなしでRDBMSソリューションを提供し、水平スケーリングを提供する。ただし、ANSI SQL準拠ではない。

Liquibaseは、2006年にNathan Voxlandによって開始され、Apache License 2.0の下で配布されている。データベーススキーマの変更を追跡、管理、適用するためのオープンソースのデータベースに依存しないライブラリである。SQL、XML、JSON、YAMLをサポートする。Liquibaseは、データベースへのすべての変更を変更ログファイルに保存し、データベーススキーマの変更を管理するためにDatabaseChangeLogテーブルとDatabaseChangeLogLockテーブルを自動的に作成する。そのデータベースライブラリは、柔軟なスキーマ変更、繰り返し可能なマイグレーション、既存のデータベースを生成するための変更ログを作成する機能、最後のN個の変更のロールバックや特定の日時へのロールバックなどのロールバック機能などの機能を提供する。

Cloud Spannerの新しいLiquibase拡張機能は、Javaで記述され、現在ベータ版である。次の操作をサポートするDDLコマンドとDMLコマンドのほとんどをカバーする:createTable、dropTable、addColumn、modifyDataType、addNotNullConstraint、dropColumn、createIndex、dropIndex、addForeignKeyConstraintAonForestraConstraintAronForestra、addLookupTable、insert 、update、loadData、loadUpdateData。

拡張機能はchangelog.yamlファイルの例を提供します。その例は、 Liquibase CLIを使ってSpannerに適用される変更ログを示しており、Cloud SpannerでのLiquibaseのベストプラクティスの適用を支援するものである。

現在の制限として、ビューやストアドプロシージャなど、サポートされていないSpanner機能がある。そして、DML中に影響を受ける行数に対するDML制限がある。DML制限に対しては、パーティション化されたDMLを使用することをお勧めする。Spanner JDBCドライバーを使用すると、これはAUTOCOMMIT_DML_MODEを使用して構成できる。

現在Cloud Spannerでサポートされているオープンソースデータベースのバージョン管理ツールはLiquibaseだけではない。Google Cloud PlatformのエンジニアリングディレクターであるPritam Shah氏は、次のように指摘している

Cloud Spannerにより、FlywayまたはLiquibaseを使って、データベーススキーマの変更を追跡、バージョン管理、デプロイ、監査できるようになりました。

一方で、LiquibaseでサポートされているマネージドクラウドサービスはCloud Spannerだけではない。そのライブラリはFirebird、Snowflake、SQLiteなどのさまざまなデータベースをサポートしているが、クラウドマネージドデータベースのほとんどはMySQLやPostgreSQLとの互換性がある。そして、互換性モードにマッチするLIquibaseのタイプ名と共に、JDBCドライバを使用してネイティブにサポートされる。たとえば、Amazon Auroraの場合、タイプ名はmysqlpostgresのいずれかである必要がある。一方でAmazon RDSの場合はmariadbmysqlmssqloraclepostgresqlのいずれかでなる。

この記事に星をつける

おすすめ度
スタイル

BT