メニューボタン
IBMi海外記事2020.09.09

さらに多くのオープンソース データベースがIBM i に導入へ

Alex Woodie 著

IBMは、従来のリレーショナル システムだけでなく、スキーマレスNoSQLデータベースなど、いくつかの新たなオープンソース データベースをIBM i プラットフォームに導入しようとしています。IBMがターゲットとしているデータベースには、おそらく最もポピュラーなNoSQLデータベースであり、Webおよびモバイル開発者の間でのお気に入りでもあるMongoDBや、業界最古で、最も幅広く使用されているリレーショナル データベースの1つであるPostgreSQLがあります。

今日のデータベースは、ほとんどプログラミング言語のようになっており、開発者は、データベースを混在させて組み合わせ、しばしば同じアプリケーション内で、様々な関数を処理しています。Career Karma氏によると、 DB-Engines.com では、330以上の異なるデータベースの動向を追跡しており、一方、プログラミング言語は700ほどあります。

フォルダ
DB-Engines.comデータベース ランキング(2020年6月版)。

オープンソースは、PHP、Node.JS、Ruby、Python、R、およびそのプラットフォームでサポートされているその他の言語など、IBM i 向けの新たなプログラミング言語の大きな供給元となってきました。10年以上前に IBM は、特に、MySQLにデータを格納するように設計された、数々のプリパッケージPHPアプリケーションをサポートするために、MySQLをIBM i に導入しました。そして、 Oracle 社がMySQLを買収し、IBM i 上での開発が終了されると、IBMはMySQLの完全互換であるMariaDBを導入することになります。

長年にわたって、MySQL/MariaDBラインは、IBM i での唯一のデータベースの選択肢でした(もちろんDb2 for iを別にしてですが)。しかし、 2019年10月、IBM i 7.3テクノロジー リフレッシュ7および7.4 TR1のリリースで、Redis(Redis Labs社によって開発されたオープンソースのキー バリュー ストア)がこのプラットフォームでサポートされることをIBMが発表したことで、そうした状況は一変し始めました。

もうすぐ、さらに2つ以上(もしかするとさらに多く)のオープンソース データベースが、このプラットフォームで利用可能になろうとしています。

PostgreSQL on IBM i

最初はPostgreSQLです。PostgreSQLは、1980年代初頭にカリフォルニア大学バークレー校でのMichael Stonebraker氏のIngresプロジェクトから生まれた、オブジェクト-リレーショナル データベース管理システムです。PostgreSQLは、ブール式、配列、文字、バイナリー、日付/時刻、ビット ストリング、XML、およびJSONドキュメントなど、数々のデータ タイプをサポートしています。

PostgreSQLは、トリガー、ストアード プロシージャー、外部キー、マテリアライズド ビュー、および自動更新可能ビューなど、先進的な機能をサポートしています。ACID(atomicity:不可分性、consistency:一貫性、isolation:独立性、durability:永続性)のすべての側面が、データウェア ハウジングおよびビジネス インテリジェンス ワークロードだけでなく、トランザクショナル アプリケーションに対する基準としても使用することができます。

PostgreSQL
PostgreSQLは「ポストグレスキューエル」と読みます。

PostgreSQLはスケールアップ(SMP)およびスケール アウト(クラスター化)構成で使用できます。PostgreSQLは、主要なすべてのオペレーティング システムをサポートしており、 EnterpriseDB社によって提供されるPostgreSQLのエンタープライズ バージョンの成功によるところもあり、その使用はこの数年で急増しています。DB-Engines.comによれば、PostgreSQLは、現在、Oracle、MySQL、Microsoft SQL Serverに続いて4番目に人気の高いデータベースです。

IBMはPostgreSQLに関する導入準備作業を完了しているようです。そして、IBM i へのデータベースの移植は「完了しています」とIBMの広報担当者は述べています。しかし、IBMはまだそのことについて外部に向けて発表していませんし、外部に向けたWebページも作成していません。このソフトウェアは、近頃のIBM i におけるほとんどのIBM公認オープンソース ソフトウェアと同様に、YumおよびRPMを介してインストールを行います。詳細な情報は、 このプロジェクトのGitHubページで参照することができます。

MongoDB for IBM i

現在、IBMは、MongoDBのIBM i での稼働に向けての作業に取り組んでいるとIBMの広報担当者は述べています。その作業が完了したら、IBM i のショップも、RPMおよびYumを介してMongoDBをダウンロードできるようになるはずです。あるいは、Access Client Solutions(ACS)を使用している場合は、ACSの「オープン・ソース・パッケージ管理」機能を使用してダウンロードすることもできます。

DB-Engines.comによれば、MongoDBは、世界で5番目に人気の高いデータベースです。このデータベースは、オンライン広告会社のDoubleClick社(現在は Google傘下)のチームによって2007年に初めて作成されました。同社は1秒につき400,000の広告を配信することを求められていました。同社のチームは、同社特有のニーズを満たすように既存のデータベースを修正するのではなく、独自のデータベースを作成することとしました。

MongoDBは、JSON(Java Script Object Notation)の拡張であるBinary JSONフォーマット(BSON)でデータを格納するドキュメント スタイルのNoSQLデータベースです。このデータベースは、これらのドキュメントをコレクション(ほぼリレーショナル データベースにおける表に相当)に配置します。これらのドキュメントおよびコレクションは、リレーショナル データベースの列-行およびテーブル抽象化よりも、人気のプログラミング言語のネイティブ データ タイプに似ているため、開発者はMongoDBを好む傾向があるようです。

MongoDBは、開発者がいつでも変更できるフレキシブルなデータ スキーマを特徴としています。これは、Db2やPostgreSQLやSQL Serverのような従来のリレーショナル データベースの固定スキーマ アプローチと比べた場合のもうひとつの大きな強みです。他のNoSQLデータベースと同様に、MongoDBは、垂直方向よりも水平方向にスケールし、ユーザーは、より多くのノードを追加することによってデータベースのサイズを拡大することが可能です。大きなデータ セットの場合、MongoDBは、データを別々のノードの上に自動的に分割、またはシャード(分散化)します。

mongoDB
MongoDBは、世界で最も人気の高いNoSQLデータベースとみなされており、開発者のお気に入りとなっています。

このデータベースは、プラガブル ストレージ エンジン アーキテクチャーを特徴としており、顧客は様々なニーズに合わせて様々なエンジンを使用することができます。

また、MongoDBは、そのレプリカ セット機能を通じたデータ レプリケーションもサポートしており、さらに、最近では、トランザクションでのACIDのサポートを追加しています。インデックスおよびトリガーはサポートしていますが、外部キーまたは結合(NoSQLデータベースにはあまり適用されない概念ですが)はサポートしていません。開発者は、公式のAPIを通じて、あるいは、数多くの人気の言語で使用可能な数々の公式および非公式のドライバーを通じてMongoDBと対話処理することができます。

ニューヨーク市を拠点とする同名の企業によるサポートの下、今日、MongoDBは18,000以上の有償顧客を抱えています。MongoDB社は数年前に株式公開し、今日では時価総額は約110億ドルに上ります。2016年にはAtlasと呼ばれるクラウド サービスを開始し、今日、同社の売上高の40%以上を占めるに至っています。

IBM i サーバーは世界でも最大規模の企業の間で広く使用されているため、MongoDBの顧客ベースの中にも、数多くのIBM i のショップが含まれています。2017年のMongoDB Worldカンファレンスでは、グローバル バンクのHSBC銀行が、同行のグローバルな株式および債権取引システムに向けて、「データの一元性・一貫性(SVOT:Single Version of Truth)」を実現する新たなオペレーショナル データ ストア(ODS)を作成するために、 どのようにMongoDBを使用したかについて講演を行っています

HSBCのアーキテクトは、最初は「スキーマレス」アプローチの使用をためらい、すべてが「収拾がつかなくなる」ことを懸念していました。しかし、NoSQLデータベースについて学ぶにつれて、彼らは、データ モデルを処理する方法だけでなく、ビルトイン データ レプリケーションのような、そのデータベースの別の側面も評価するようになりました。最終的に、そのアプリケーションに対してMongoDBを使用することをアーキテクトに納得させるのに役立ったのは、ACIDのサポートでした。

導入が見込まれるデータベースは他にもまだある

前述のように、今日、全世界には300をはるかに上回るデータベースがあります。IBM i の世界で公式にサポートされているのは、Db2、MySQL、MariaDB、Redisの4つであり、その他にPostgreSQLおよびMongoDBの2つのサポートが予定されているようです。しかし、IBM i サーバーが6つのデータベースをサポートすることになるのだとしたら、10や20増えたとしても、何も問題ないのではないでしょうか。

Cassandra
Apache Cassandraは、ペタバイト-スケールのデータ セットでの業界トップの可用性を提供します。

世界のトップ データベースのリストを見てみると、著名な製品の中にも、しっくりきそうなものがいくつかありそうです。現在、PHPランタイムおよびソリューションのZend Serverラインを所有する Perforce 社のシニア ソリューション コンサルタントであるErwin Early氏によると、ぴったりフィットしそうなデータベースは少なくとも1つはあるそうです。

「IBM i プラットフォームにかなり導入しやすそうなもうひとつのデータベースは、Cassandraです」と、Early氏は先日のCOMMON iNSIGHTでの「Exploring Open Source Databases on IBM i (IBM i でのオープンソース データベースを探る)」と題したセッションで述べています。

「CassandraはJavaベースであるため、単にソースを入手して、プラットフォームに導入すればいいだけのはずです。それだけで、フル稼働するはずです。ただ、これまでにそれを実践した人はというと、私も知りません。」

Apache Cassandraは、膨大なデータを格納し、低遅延で高速な読み書きスループットを実現するためにGoogleによって作成されたキー バリュー ストアであるBigtableをベースにしたNoSQLデータベースです。ワイド カラム ストアとみなされるCassandraは、今日では、マルチリージョン グローバル クラスターをサポートしており、セットアップするのは複雑ですが、グローバルに分散した環境で最高レベルのデータ可用性を維持する必要がある組織にとっての標準的製品とみなされています。

しかし、MongoDB、Cassandra、Redisで終わりにする理由はありません。その他にも、進取的なIBM i 顧客なら使い途を見出し得る、風変わりなNoSQLデータベース ファミリーのメンバーが多数あります。たとえば、ログ管理やログ解析向けのElasticsearch、超高速データ サービング向けのMemcached、グラフ データ構造および解析向けのNeo4j、エッジツーコア アナリティクス向けのCouchbase、地理的に分散したクラスター間での超高速データ サービング パフォーマンスで知られるAerospike、そして、初のマルチモデル データベースの1つであるMarkLogicなどが挙げられます。

データベースのサポートは、ささいな問題ではありません。データベースは、組織が最も重要な資産を格納する場所であるため、信頼の置ける場所でなければなりません。新たなデータベースがこのプラットフォームに導入されても、Db2がIBM i のショップ向けのレコードのデータベースであることをやめる兆しはありません。しかし、IBM i コミュニティがオープンソース技術の受け入れを拡大するのにつれて、Db2の設計には決して含まれなかった機能を実行できる、特化したデータベースをサポートするメリットが生まれてくることは明らかです。そして、それは非常に喜ばしいことにほかなりません。

あわせて読みたい記事

PAGE TOP