BT

PolyBaseを使用したSQL ServerとHadoopの結合

| 作者: Jonathan Allen フォローする 614 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2016年7月20日. 推定読書時間: 2 分 |

原文(投稿日:2016/06/02)へのリンク

先日リリースされたSQL Server 2016では,HadoopとAzureのBlobストレージにSQLクエリを使用できるようになる。PolyBaseとして知られるこの技術は以前,SQL Server Parallel Data Warehouseで利用可能だったものだ。

リンクされたサーバと同じように,PolyBaseは可能な限り,ソースデータベース上で処理を行なうようにオフロードしようとする。これによってHadoopあるいはAzure Blobストレージに対してクエリを実行する時に,適切なマップ/リデュース操作を生成することができる。これは“プッシュダウン”と呼ばれる方法だが,開発者の注意が必要な,次のような制限がある。

SQL Serverではプッシュダウン句の操作として,次のような基本的な式と演算が使用可能です。

  • 数値,日付,および時刻値のバイナリ比較演算子 (<、>、=、!=、<>、> =、<=) 。
  • 算術演算子 (、 - 、*、/、%) 。
  • 論理演算子 (AND、OR) 。
  • 単項演算子 (NOT,IS NULL,IS NOT NULL)。

ドキュメントには次のような説明がある。

演算子BETWEEN,NOT,IN,LIKEはプッシュダウンされる可能性があります。実際にプッシュダウンされるかどうかは,オプティマイザがこれらを,基本的な関係演算子による一連のステートメントとして,どのように書き換えるかによります。

OPTION (FORCE EXTERNALPUSHDOWN)とOPTION (DISABLE EXTERNALPUSHDOWN)を使用すれば,プッシュダウンを明示的に行なうか,あるいは無効にすることも可能だ。

リレーショナルデータと非リレーショナルデータの組み合わせ

PolyBaseは標準T-SQLに基づいているため,JOINなど通常のオペレーションを使用することもできる。これにより,Hadoopクラスタにマップレデュース操作を実行した結果をSQL Serverデータベースのテーブルに結合する操作を,単一のクエリで実行することが可能になる。

インポート/エクスポート

SQL Server,Hadoop,Azure Blobストレージ間でのデータ移動に,外部のETL(Extract/Transform/Load)プロセスやツールはもはや必要ない。任意の2つの通常テーブル間で,共通のINSERT INTO/SELECT FROM構文が使用できるのだ。開発者の観点からは,HadoopとAzure Blobストレージという,データベースのプロビジョニング時に選択するテーブルタイプが2つ増えたことになる。(ただし運用の立場からは,セキュリティとバックアップを別途管理する必要がある点は変わらない。)

 
 

この記事を評価

関連性
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT