【速報】Amazon Redshiftのデータベースオブジェクト名が多言語に対応しました!
はじめに
こんにちは、yokatsukiです。
日本時間の昨日、土曜日に、Amazon Redshiftのデータベースオブジェクト名が多言語に対応したとの発表がありました!
既存のデータベースからRedshiftへ移行する際に難点だったのが、「テーブル名やカラム名に日本語が使えない」ということでした。日本語テーブル名やカラムが使えないことで、BIツールからRedshiftを利用する際に、ユーザの利便性を上げるためにツール側でテーブル名やカラム名を日本語に変換する手間が発生していました。 これが今回のアップデートで解決するのであれば、BIツールから利用する際の利便性が大いに向上します。非常に嬉しいアップデートです!
試してみた
待望の日本語テーブル名やカラム名、果たして発表どおりに使えるようになっているのでしょうか。早速新しくRedshiftクラスタを起動し、クライアントからのアクセスで確認してみます。
新Redshiftクラスタ起動
新機能を試すには、新しいバージョンのクラスタを起動するのが一番手っ取り早いです。 発表では特にリージョン限定という記述は無かったので、東京リージョンで試してみます。
いつものようにAWS管理コンソールにアクセスし、Redshiftクラスタを起動します。
主なクラスタ構成は以下です。
- クラスタ名: multibyte-object-name-test-cluster
- データベース名: mbobjectnametestdb
- クラスタ構成: dc1.large x1
- パブリックアクセス: Yes
設定を加えしばらくすると、Redshiftクラスタが起動しました。クラスタのバージョンは1.0.1125となっています。
Redshiftクラスタログイン、日本語名オブジェクト作成
Redshiftクラスタログイン
上記お知らせに、JDBC/ODBCのリリースノートがリンクされていたのでざっと確認しましたが、マルチバイト関連のアップデートは、JDBCドライバの
- Multi-byte connection URL or username causes connection failure.
というところのみのようなので、取り急ぎドライバはアップデートしないままで、クライアントツール"Aginity Workbench for Redshift"からログインして操作してみます。
- Windows 10 Pro バージョン1607
- Aginity Workbench for Redshift 4.8.0.2551
AWSコンソールエンドポイント情報から確認できるエンドポイントや、クラスタ構成時に設定したユーザ名、パスワードを設定して、作成したRedshiftクラスタにログインします。
日本語カラム、日本語テーブル作成
日本語カラム名を含んだ日本語テーブル名で作成してみます。
なんの問題もなく作成されました! ちなみに対応していないバージョンのクラスタでは、以下の様にエラーとなります。
データの挿入と問い合わせ
データを追記し、問い合わせてみます。
WHERE句のカラム設定含め、問題なく動作しました。
日本語ビュー作成
日本語のビューが作成、利用できるか確認します。 先程のテーブルの片方のカラムだけ参照できるビュー"日本語ビュー"を作成し、問い合わせてみます。
できました。
おまけ:絵文字
それは「?って入るかな?」という素朴な疑問でした。試しました。
残念ながら、Aginity Workbench for Redshiftの全ての表示が絵文字に対応していないため、カラム名が豆腐になってしまいました。 そこで、macOS Sierraのターミナルからpsqlコマンドで確認してみました。
見事にテーブル名、カラム名が?で表示されました(笑)
まとめ
Redshiftの新機能、データベースオブジェクト名のマルチバイト対応について確認しました。 バージョン1.0.1122で対応しているのが確認できたので、既存のRedshiftクラスタで日本語対応させたい方は、対象のクラスタのメンテナンスウィンドウを設定を有効にして、バージョンが上がった後確認頂く必要があります。直ぐに試したい方は、上記の通り新規にクラスタを起動すれば東京リージョンでも確認できますので、ぜひお試しください。
今回はテーブルやビューなど、ごく基本的なデータベースオブジェクトだけの確認でしたが、その他のオブジェクトでも問題ないか、ユーザ名やスキーマを日本語にした場合は、COPY/UNLOADコマンドでは動作するのか、日本語以外ではどうなのか、など確認する事項はまだまだたくさんあります。それらは続報として都度確認し公開したいと思いますので、引き続きこの新機能に関するエントリにご注目ください。