Scalar DB 3.6をリリースしました
先日、Scalar DBの新しいマイナーバージョンとしてScalar DB 3.6.0をリリースしました!これまで、Scalar DBでは、CRUDインターフェースとGraphQLインターフェースのみを提供していましたが、本リリースでは新たにSQLライクな宣言的なインターフェースを追加しました。また、本リリースでは、後方互換性を維持したAPIの大幅な改善をしており、さらに使い易いライブラリとなっています。
本記事では、SQLインターフェースとAPIの改善について簡単に説明します。
SQLインターフェース
本リリースで追加されたSQLインターフェースは、その名の通りSQLライクな言語でScalar DBを操作できる機能になります。これにより、多様なデータベースに対する統一的なトランザクション管理に加えて、バージョン3.2において追加されたマイクロサービス向けのトランザクション管理もSQLにて行うことが可能です。また、SQLインターフェースを用いたJDBCドライバも合わせて提供しているため、JDBCドライバを用いることにより他のJDBC対応データベースと同様の操作感でScalar DBを操作することが可能となりました。
Scalar DB SQLのドキュメントはこちらになります。Scalar DB SQLを触ってみたい方は、Getting Started with Scalar DB SQLをご覧ください。Scalar DB JDBCを使ってみたい方は、Getting Started with Scalar DB JDBCをご覧ください。Scalar DB SQLでどのような機能があるかを知りたい方は、Scalar DB SQLの文法を説明しているScalar DB SQL Grammarをご覧ください。
本機能は商用ライセンスとなっていますので、実際に使用したい場合はこちらからご連絡をいただければと思います。
APIの改善
改善後のAPIについてはこちらで説明していますのでご覧ください。
改善後のAPIについて細かい変更点はたくさんありますが、本記事では、主な変更点についていくつか説明します。今回の変更は、すべて後方互換性を維持した上で行われているので、従来のコードはScalar DB 3.6.0でも動作します。
オペレーション(Get, Scan, Put, Delete)のためのBuilderの追加
Scalar DB 3.6.0では、以下のようにBuilderを用いてオペレーションを作成することができます。
全てのデータ型に対してNULLを設定可能となった
これまでは、Text型とBlob型にのみNULLを設定可能となっていましたが、Scalar DB 3.6.0からは、以下のように全てのデータ型に対してNULLを設定することができるようになりました。
Resultクラスの使い方の変更
Resultクラスのカラムの値の取得方法が以下のように変更になりました。
また、カラムの値がNULLかどうかを取得する方法は以下になります。
DistributedTransactionAdminの追加
トランザクション用テーブルの作成/削除等の管理オペレーションを抽象化したDistributedTransactionAdminが追加されました。DistributedTransactionAdminを使用することで、トランザクション実装を意識することなく管理オペレーションを実行することができます。詳細に関してはこちらをご覧ください。
まとめ
本記事では、先日リリースしたScalar DB 3.6.0の説明をしました。本リリースでは、主に、SQLライクな宣言的なインターフェースの追加と、後方互換性を維持したAPIの大幅な改善を行いましたが、本記事ではそれらを簡単に説明しました。