SQL Server ビッグ データ クラスターの HDFS 階層化機能でデータ レイクを統合
※このポストは、2019 年 10 月 31 日に投稿されたUnify your data lakes with HDFS tiering in SQL Server Big Data Clustersに加筆および更新を行ったものです
データの量と種類が増えるにつれ、データを多種多様なデータ ソースに保存することがより一般的になりました。そして今、多くの組織が、さまざまなデータ ソースのすべてのデータからいかに洞察を得るかという課題に直面しています。そこでマイクロソフトは、SQL Server 2019 ビッグ データ クラスターで革新的な機能強化を行い、新しい HDFS 階層化機能によりデータ仮想化機能をさらに拡張します。
HDFS 階層化機能を使用すると、リモートのデータ レイクに保存されている非構造化データにアクセスして、すべてのデータを簡単に統合し、洞察を得ることができるようになります。そのための作業として、リモートの HDFS/S3 互換データ ソースをローカルの HDFS データ レイクにマウントします。
この新機能は、Apache Hadoop オープン ソース プロジェクトに対してマイクロソフトが行った最新の大きな貢献であり、まずは SQL Server 2019 ビッグ データ クラスターに搭載されて市場投入される予定です。
HDFS 階層化機能について詳しく説明する前に、データ プラットフォームである SQL Server ビッグ データ クラスターについて簡単にご紹介します。
SQL Server ビッグ データ クラスターとは
SQL Server ビッグ データ クラスターとは、分析や AI に適した完全なデータ プラットフォームであり、非構造化データを含め大量のデータを保存できるローカルの HDFS データ レイクが組み込まれています。ビッグ データ クラスターでは、クエリの実行や機械学習に、Apache Spark™ と SQL Server の 2 種類のコンピューティング エンジンを利用できます。
現在のところ、SQL Server ビッグ データ クラスターで HDFS 階層化機能を使用してマウントできるストレージは、Azure Data Lake Storage Gen2、AWS S3、Isilon、StorageGRID、および Flashblade です。今後さらに対応範囲を拡大し、オンプレミスとクラウド両方でその他の主要な HDFS/S3 互換ストレージ ソリューションも加えていく予定です。
それでは、HDFS 階層化機能について詳しく見ていきましょう。
HDFS 階層化機能とは
HDFS 階層化機能を使用すると、リモート ストレージをお客様のビッグ データ クラスターにマウントして、即座に Apache Spark™ または SQL Server からそのリモート データにシームレスにアクセスできるようになります。
マウント コマンドが発行されると、マウント資格情報を使ってリモート ストレージに対する認証が行われ、リモート ファイルとディレクトリのメタデータ (ローカルの HDFS へのアクセス許可など) がコピーされます。この処理ではメタデータだけがコピーされるので、それほど時間はかかりません。データを移動するわけではないからです。
マウント処理が完了すると、すぐにリモート データにアクセスできるようになります。最初の読み取り操作では、読み取られたデータが既定でローカルにキャッシュされます。つまり、次回以降同じデータを読み取る際には、そのローカル キャッシュから読み取りが行われるのでパフォーマンスが上がるということです。
既定のキャッシュ サイズは、ローカルの HDFS データ レイクが持つ全ストレージ容量の 2% に設定されており、特定のマウントに対するキャッシュは、マウントの更新や削除が行われると空にされます。
単一コマンドでマウントを作成
SQL Server ビッグ データ クラスターの HDFS 階層化機能でマウントを作成するには、次のコマンドを使います。
azdata bdc hdfs mount create –remote-uri <リモート ストレージの URI> –mount-path <ローカルの HDFS のパス>
SQL Server ビッグ データ クラスターの HDFS 階層化機能の使用方法については、こちらのビデオをご覧ください。
今までは、これほど簡単にローカルのビッグ データ クラスターからリモート データやクラウドの無制限ストレージに即座にアクセスできる方法はありませんでした。ただし、使いやすさだけが HDFS 階層化機能の利点ではありません。
- コストを削減し、データの移動を減らす
HDFS 階層化機能を使用すると、データ レイク間で大量のデータをコピーして、データを移動するための統合パイプラインを別途維持しなくても、より低コストのオブジェクト ストアにデータを残したまま、オンデマンドの読み取りとキャッシュによって所要時間を短縮できます。
- ビッグ データをセキュアに共有
HDFS 階層化機能によって、容易に組織のビッグ データをすべてのチームとセキュアに共有し、データを最大限活用できるようになります。マウントを行うと、リモート アクセス許可がローカルのデータ レイクにコピーされるため、リモート データへのアクセスが行われる際には常にそのリモート アクセス許可が使用されることになります。その上、HDFS 階層化機能では、OAuth アクセス キーを使用してリモートのデータ ソースに対する認証を行うセキュアなマウント処理がサポートされています。また、Azure Active Directory での Kerberos と Azure Active Directory の結合されたデータ ソースに対するマウント処理へのサポートも、間もなく提供される予定です。
- コンピューティング エンジン間でのポータビリティ
各種データ レイクのすべてのデータを分析することで、特定のユース ケースに最適なコンピューティング エンジンを自由に使用できるようになります。ビッグ データ クラスターでは、データの処理や分析に SQL Server と Apache Spark™ をすぐに利用できるようになっています。HDFS 階層化機能によって、両方のコンピューティング エンジンで、ローカルだけでなくマウントされたデータ レイクのデータもシームレスに処理できます。
ぜひお客様も HDFS 階層化機能のメリットを実際にご体験ください。
“HDFS 階層化機能のおかげで、開発における時間とコストを大幅に節減することができました。当社では Azure Data Lake Storage Gen2 に大量のデータを保存しています。HDFS 階層化機能によって、簡単にそれらの場所にあるデータにマウントできるようになり、統合プロセスを別途作成して維持する必要がなくなりました。” – ENGIE North America、データ統合担当アプリケーション マネジメント アドバイザー、Lance Milton 氏
SQL Server ビッグ データ クラスターの HDFS 階層化機能を使ってデータ レイクを統合する方法の詳細については、こちらの HDFS 階層化機能に関するドキュメントをご覧ください。また、この HDFS の新しい動的なマウント機能の技術的詳細に関心をお持ちの方は、ぜひこちらの Jira のページをご確認ください。
※本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。