X

A blog about Oracle Technology Network Japan

オラクルのコンバージド・データベースで開発を容易に進め、データを最適化するには

Guest Author

※本記事は、Tim Pirog による "How to Simplify Development and Optimize your Data with Oracle's Converged Database" を翻訳したものです。


 

March 16, 2021
 

データが支えるこのデジタル化社会において、企業が競争力を維持するためには、独自の資産を構築し、それを最大限に活用しなければなりません。そのため、データベース・パフォーマンスを管理し最適化しようとなると、開発者が矢面に立つことになります。開発者は今や、スタック全体の基盤テクノロジーを形作るだけでなく、幅広いハイブリッドな役割(DevOps、フルスタックなど)を担って、効率化やベスト・プラクティスを推し進める存在になっています。しかし、開発者がデータの生産性か開発者の生産性かの選択に迫られることも多いようです。

そのようなジレンマを解消してきたのがオラクルのコンバージド・データベースです。

開発者は、デジタル情勢が常に変化するということを誰よりもよく知っています。言語、フレームワーク、ツール、プロトコルなどがすぐに新しくなる環境では注力すべき目標が明確でないと、多くの要求や機会にすぐに圧倒されることでしょう。“Keep it Simple”(物事はシンプルに)というKISSの原則に沿いながら、開発者は最新の開発を懸命に追い求めますが、自社の競争力を維持するために必要な業務の効率性を犠牲にはできません。

単一目的データベースは、専用データベースとも呼ばれることも多く、ターゲットを絞った問題解決を目的として構築されています。しかし、業務の規模が拡大すると、複数の単一目的データベースを統合することが必要になります。 

それに対抗するのがオラクルのコンバージド・データベースです。これは、複数の単一目的データベースを組み合わせるよりもシンプルで、簡単で、エラーが極めて発生しにくい機能一式を搭載したプラットフォームです。 

この記事では、オラクルのお客様がシンプルとスマートを常に両立させるために役立つ、オラクルのコンバージド・データベースの主なメリットをいくつかご紹介します。開発をスマートに。複数のデータタイプを使用して開発する場合は、これが特に重要になります。

企業が成功に必要となる効率性と関連性を求める上で、複雑なプロセスとデータ統合の大規模なデジタル化は必須です。その結果、開発チームは難しい選択に迫られます。今の迅速なアプリケーション開発のために最適化するのか、後のより簡単なデータ取得を優先するのか、という選択です。つまり、開発者の生産性か、データの生産性か、という難しい二者択一です。

前者(開発者の生産性)の場合、開発チームは特定のプロジェクト向けに単一目的データベースを急いで用意することになるでしょう(特に、新規開発の場合はこの傾向が強くなります)。各データベースは最初のハードルを低くしており、多くの場合、当座の目的に合った便利なデータ・モデルと関連APIが搭載されています。各データベースにすぐに役立つ独自の運用特性が備わっているため、開発は迅速に進みます。しかし、プロジェクトの規模が大きくなり、追加のデータベースやクラウド・サービスが必要になると、複雑さが増してデータが断片化してしまいます。以前は魅力的だった各データベースの特性が規模の拡大によって機能しなくなり、得られた効率性はすぐに失われるのです。その結果、開発チームは、標準化(API、問合せ言語など)の不足、データの断片化、セキュリティ・リスク、管理面のギャップなど、長期的な困難に直面することになります。


単一目的データベースがもたらす統合の難しさを表したスナップショット

 

後者(データの生産性)の場合、特に再開発プロジェクトでは、開発者は企業の標準データベース上で構築する必要があるでしょう。それは通常、汎用的なリレーショナル・データベースか、リレーショナルなマルチモデル・データベースとなります。しかし、企業の標準データベースは決められたポリシーに従い、運用、セキュリティ、データ再利用(レポート、分析など)といった事柄を簡素化するものの、機能が限定されているためにイノベーションが遅れ、さらには妨げられる可能性もあります。これには、急速に変化する競争の激しい市場環境において、ビジネス全体が不利な状況に追い込まれるリスクがあります。

どちらのシナリオも理想からは程遠く、それぞれの向かう先には限界があります。ここで大きな疑問が生まれます。「第3のオプションはないのか?」 

そのオプションこそが開発者の生産性とデータの生産性のバランスをとったクラス最高のソリューションであるオラクルのコンバージド・データベースです。

コンバージド・データベースは、簡単に言えば、マルチモデル、マルチテナント、マルチワークロードのデータベースです(以下の図を参照)。さらに具体的にオラクルのコンバージド・データベースについて説明すると、すべてのワークロード(OLAP、OLTP、IoTなど)に基づく最新の開発に必要となるデータ・モデルとアクセス手法を提供するものとなっています。さらにメリットとして、開発者や開発者チームが求めているツール、セキュリティ、統合、運用特性を提供します。すなわち、簡素化、合理化、そして大規模な環境での高いパフォーマンスを実現する強力でスマートな機能を備えています。

Oracle Database 19c は世界初のコンバージド・データベース ― 大規模環境の強力なソリューション向けに開発者の生産性とデータの生産性のバランスをとったデータベースである

 

開発者であれば、口で言うのは簡単だから実際にコードを見せてほしいと思うのではないでしょうか。それでは、2つの異なる環境について、いくつかのコード例と共に見ていきながら、オラクルのコンバージド・データベースによってデータ層がどのように開発向けに合理化されているかについて理解を深めましょう。

ここでは、民泊オンライン・アプリケーション内の3層の環境について2つの実装方法を確認することで、オラクルのコンバージド・データベースに本来備わる簡素性を明らかにします(例では、以下の図に示すとおり、“Host-a-bnb”という名のAirbnbに似たアプリケーションを利用します)。

このアプリケーションに必要となる固有のデータ・アセットは次のとおりです。

  1. Key-Value ( ユーザーに後でパーソナライズされたクイック検索機能を提供するため、ユーザーの検索履歴を保存する )
  2. グラフ( ソーシャルメディア機能を最適化して拡張するために、ユーザー同士の関係を保存する )
  3. リレーショナル( ユーザーの予約と決済のトランザクションを保存する )

これらを基にした要件は以下のようにまとめられます(簡略化するために、キャッシュ・レイヤーは省略します)。

  1. 単一目的データベースのデプロイメントは、MongoDB(key-value)、Neo4j(グラフ)、Firebird(リレーショナル)の各データベースで構成される。
  2. Oracle Databaseデプロイメントは、1つのプラガブル・データベースで構成され、そのデータベース内にkey-value、グラフ、リレーショナルの各データに対応した表を保有する。

Host-a-bnbの3層環境の概略図:複数の単一目的データベースで実行する場合とオラクルのコンバージド・データベースで実行する場合

 

この構成内で、"Host-a-bnb" Webアプリケーションを、それぞれ対応するデータ層に接続するという、比較的面倒ではない部分に絞り込んでコーディングしてみましょう。

単一目的データベースとオラクルのコンバージド・データベースのデータ層接続に関する比較

 

直前の図からわかるように、単一目的データベースへの接続には余分な処理が必要になります。もちろんこの例は単純なものですが、それでも今後複雑になることが予感されます。以下のコードは、それぞれの単一目的データベースに対して単純な問合せを実行しています。これを見ると、もうすでに厄介な状態になり始めています。

単一目的データベースのデータ層内を問い合わせる簡易サンプル

 

これに対して、オラクルのコンバージド・データベースの統合アプローチでは、期待どおりの方法でこのデータを問い合わせることができます。1つの問合せでデータが結合され、期待した結果が返されます。面倒な作業も、データベース間やデータタイプ間の変換も必要ありません。

オラクルのコンバージド・データベースのデータ層内を問い合わせる簡易サンプル

 

単一目的データベースとオラクルのコンバージド・データベースのデータ層内への問い合わせ (QL) に関する比較

ここで明らかとなった最も注目すべき点は、単一目的データベースはデータの問合せにおいて開発チームに負担をかけるということです。それぞれのデータベースに固有の問合せ言語(QL、上の図を参照)が必要となります。それに加えて、問合せが実行されると、データはバラバラな状態で、多くの場合は順次的に取得されます。これは開発の立場から言えばまったく効率的ではありません。各開発者が1つのアプリケーションについて、3つの異なるデータセットを最小化する方法を考案する必要があるからです。さらに、開発者は期待した結果を生成するために、手動でデータ統合を実行する必要があります。

上記の問合せのコード例を見ればわかるように、オラクルのコンバージド・データベースは、1つのQLでデータベース全体にわたってすべての問合せを実行することで、この問題を根本から解決します。そのため、開発者ではなくデータベースに力仕事を任せることができます。

単一目的データベースとオラクルのコンバージド・データベースのデータ層内へのデータ問合せに関する対象比較

上の表に示すとおり、単一目的データベース製品では断片的な状況は避けられず、統合を実装するために多大な労力を費やすことになります。その解決策として、オラクルのコンバージド・データベースは、必要な統合を最小限に抑えるだけでなく、プラットフォームのアーキテクチャ全体に最先端の機能を融合させた包括的製品を提供することで、単一目的データベースが持つリスクを回避しています。たとえば、同じ表内に異なるデータタイプを格納でき、それらを結合することも可能です。つまり、別のデータタイプを追加するためだけに別の製品を用意する必要がなくなります。新しい列や表を作成するだけで済み、簡単です。

単一目的データベースとオラクルのコンバージド・データベースのデータ層内への分析問合せに関する対照比較

業務上のデータ利用はデータ管理の1つの側面に過ぎません。データベース間でのデータ移動が必要になることの多いETL(抽出、変換、ロード)操作について言えば(たとえば、分析やレポートのためにOLTPからOLAPに移動する)、オラクルのコンバージド・データベースを使用すれば、開発者はリソースを消費するETL操作をする必要がありません。このような直感的でシンプル、かつ高品質の統合パターンが、オラクルのコンバージド・データベース全体に広がっています。

オラクルのコンバージド・データベースは長年のイノベーションの上に築かれており、効率性とパフォーマンスを最大限に発揮するように作られたツール一式も同時に提供されています。オラクルは世界第2位の規模のソフトウェア企業として、CI/CDプロセス全体で開発者を支援する幅広い製品を提供しています。これには以下が含まれます。

1. Helidon.io

  • マイクロサービス開発を簡素化できる軽量のマイクロサービス Java フレームワーク。特に、どこでも実行できる点が優れています。

2. Coherence

  • データを確実に保存するグリッドベースのアプリケーションを構築するための、スケーラブルでフォルト・トレラントな、クラウド対応型の分散プラットフォーム。

3. Docker/cri-o と Kubernetes

  • オラクルのサポートを得て、コンテナ化とオーケストレーションを目的として、モノリシックなアプリケーションと並行してクラウドネイティブのアプリケーションを構築してデプロイすることが可能。

4. WLS Kubernetes Operator

  • 最も容易な Oracle WebLogic 開発、デプロイ、管理を推進。 WLS Kubernetes Operator によって、既存のスキルセットを拡大しながら、容易に最新化できます。

5. Verrazzano

  • 従来型のアプリケーションやクラウドネイティブのアプリケーションをマルチクラウドおよびハイブリッドのシナリオでデプロイするためのエンタープライズ・コンテナ・プラットフォーム。

6. Terraform と Oracle Cloud Infrastructure (OCI)

  • 安全かつ予測可能な形での Oracle Cloud Infrastructure の作成、変更、改善が可能。

開発者の役割は常に拡大しています。また、かつてない勢いで、ITプロセスがコードドリブンになっています。オラクルもそのことを十分に理解しています。だからこそ、CI/CDプロセス全体を通じて開発者に配慮した環境を提供しているのです。どのようなタスクでも、開発者がどこにいても、オラクルのツールセットは、シンプルとスマートを常に両立させるためにお役に立ちます。開発をスマートに。盤石の信頼性を備えるシンプルでセキュアなテクノロジーを皆さまに。

複雑化が進み、効率化がますます要求される現代においては、それが確かな力になります。

オラクルの最新テクノロジーの詳細については、Oracle LiveLabsをご覧の上で、Oracle Cloud Free Tier上で無償でお試しください。オラクルは皆さまの側でいつでも支援いたします。

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.