【速報】Amazon Redshiftのデータベースオブジェクト名が多言語に対応しました!

2016.11.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは、yokatsukiです。

日本時間の昨日、土曜日に、Amazon Redshiftのデータベースオブジェクト名が多言語に対応したとの発表がありました!

既存のデータベースからRedshiftへ移行する際に難点だったのが、「テーブル名やカラム名に日本語が使えない」ということでした。日本語テーブル名やカラムが使えないことで、BIツールからRedshiftを利用する際に、ユーザの利便性を上げるためにツール側でテーブル名やカラム名を日本語に変換する手間が発生していました。 これが今回のアップデートで解決するのであれば、BIツールから利用する際の利便性が大いに向上します。非常に嬉しいアップデートです!

試してみた

待望の日本語テーブル名やカラム名、果たして発表どおりに使えるようになっているのでしょうか。早速新しくRedshiftクラスタを起動し、クライアントからのアクセスで確認してみます。

新Redshiftクラスタ起動

新機能を試すには、新しいバージョンのクラスタを起動するのが一番手っ取り早いです。 発表では特にリージョン限定という記述は無かったので、東京リージョンで試してみます。

いつものようにAWS管理コンソールにアクセスし、Redshiftクラスタを起動します。

amazon-redshift-support-multilang-object-name-01

主なクラスタ構成は以下です。

  • クラスタ名: multibyte-object-name-test-cluster
  • データベース名: mbobjectnametestdb
  • クラスタ構成: dc1.large x1
  • パブリックアクセス: Yes

設定を加えしばらくすると、Redshiftクラスタが起動しました。クラスタのバージョンは1.0.1125となっています。

amazon-redshift-support-multilang-object-name-02

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クラスタにログインします。

amazon-redshift-support-multilang-object-name-03

日本語カラム、日本語テーブル作成

日本語カラム名を含んだ日本語テーブル名で作成してみます。

amazon-redshift-support-multilang-object-name-04

なんの問題もなく作成されました! ちなみに対応していないバージョンのクラスタでは、以下の様にエラーとなります。

amazon-redshift-support-multilang-object-name-05

データの挿入と問い合わせ

データを追記し、問い合わせてみます。

amazon-redshift-support-multilang-object-name-06

amazon-redshift-support-multilang-object-name-07

WHERE句のカラム設定含め、問題なく動作しました。

日本語ビュー作成

日本語のビューが作成、利用できるか確認します。 先程のテーブルの片方のカラムだけ参照できるビュー"日本語ビュー"を作成し、問い合わせてみます。

amazon-redshift-support-multilang-object-name-08

amazon-redshift-support-multilang-object-name-09

できました。

おまけ:絵文字

それは「?って入るかな?」という素朴な疑問でした。試しました。

amazon-redshift-support-multilang-object-name-10

残念ながら、Aginity Workbench for Redshiftの全ての表示が絵文字に対応していないため、カラム名が豆腐になってしまいました。 そこで、macOS Sierraのターミナルからpsqlコマンドで確認してみました。

amazon-redshift-support-multilang-object-name-11

見事にテーブル名、カラム名が?で表示されました(笑)

まとめ

Redshiftの新機能、データベースオブジェクト名のマルチバイト対応について確認しました。 バージョン1.0.1122で対応しているのが確認できたので、既存のRedshiftクラスタで日本語対応させたい方は、対象のクラスタのメンテナンスウィンドウを設定を有効にして、バージョンが上がった後確認頂く必要があります。直ぐに試したい方は、上記の通り新規にクラスタを起動すれば東京リージョンでも確認できますので、ぜひお試しください。

今回はテーブルやビューなど、ごく基本的なデータベースオブジェクトだけの確認でしたが、その他のオブジェクトでも問題ないか、ユーザ名やスキーマを日本語にした場合は、COPY/UNLOADコマンドでは動作するのか、日本語以外ではどうなのか、など確認する事項はまだまだたくさんあります。それらは続報として都度確認し公開したいと思いますので、引き続きこの新機能に関するエントリにご注目ください。