Session
Configure SQL Server 2019 PolyBase
Scale-out Groups
Japan SQL Server User Group
Yang
■このセッションで学習できる内容
①SQL Server 2019 PolyBaseのおさらい
②SQL Server 2019 PolyBaseののスケールアウトグループ構築手順
③スケールアウトグループの分散確認方法
Configure SQL Server 2019 PolyBase
scale-out groups
■PolyBaseとは
PolyBaseは、T-SQL言語を使ってデータベースの外部にあるデータにアクセスするテ
クノロジ。
■PolyBaseを使う理由
リレーショナルデータとテーブルとして構造化されていない他のデータ (特に Hadoop)
の両方を分析するため。
これは、種類の異なるデータストア間でデータを転送する手段がない限り、実行するのは
困難である。 PolyBaseは、SQL Serverにとって外部のデータに対する操作により、このような
ギャップを埋める。
つまり、SQL Server上にあるテーブルのデータ、そして、外部(場所問わず)のテキスト
データ、その結合で、クエリを発行できるようになり、分析に役に立つこと。
通常のリンクサーバーとは異なり、プッシュダウンやスケールアウトの仕組みも用意されて
いるため、Polybase により、より高いパフォーマンスで外部のデータソースにアクセスすることが
でき、それらを SQL 経由でアクセスすることができるようになるため、多くのツールで利用できる。
Configure SQL Server 2019 PolyBase
scale-out groups
■PolyBaseを使えるSQL Serverバージョン(現時点Windows版SQL Serverのみ)
SQL Server 2016
SQL Server 2017
SQL Server 2019
■SQL Server 2019からPolyBaseは大きく変わる点
SQL Server 2016/2017
Azure BLOB Storage、Azure Data Lake Store、Hadoopに対しての
み実行する
Configure SQL Server 2019 PolyBase
scale-out groups
■SQL Server 2019からPolyBaseは大きく変わる点
SQL Server 2019
Azure BLOB StorageとHadoop以外に、SQL Server、Oracle、
Teradata、 MongoDB、Azure Cosmos DB、MySQLなど、様々な外部データソースに対し
て実行できるようになる。
Configure SQL Server 2019 PolyBase
scale-out groups
■SQL Server 2019のPolyBaseのスケールアウトグループ(Demo構成、一部)
Configure SQL Server 2019 PolyBase
scale-out groups
SQL Server
2019
SQL Server
2019
SQL Server
2019
SQL Server
2019
PolyBase
Engine
PolyBase
DMS
PolyBase
DMS
PolyBase
DMS
PolyBase
DMS
PolyBase Scale out Group
Head node Compute node Compute node Compute node
PolyBase
Queries
■SQL Server 2019のPolyBaseのスケールアウトグループセットアップ画面(抜粋)
Configure SQL Server 2019 PolyBase
scale-out groups
■複数計算ノードイメージ
Configure SQL Server 2019 PolyBase
scale-out groups
■SQL Server 2019のPolyBaseのスケールアウトグループ構成要件(共通)
①Active Directory環境であること。Windows認証(kerberos)。
②PolyBaseのノード間の通信はアカウントはドメインの同じアカウントであること。
(PolyBaseのサービスアカウント)
※万が一、サービスアカウントが間違った場合、サービスアカウントを設定するのではなく、
PolyBaseをアンインストールして、再インストールする必要
③FWの受信規則を有効する
・SQL Server PolyBase – PolyBase Services
・SQL Server PolyBase – データベースエンジン
・SQL Server PolyBase – SQL Browser
・各ノード間で、SQL Server通信できること
④SQL ServerのTCP/IP接続を有効する必要
⑤「polybase enabled」の変更(0⇒1)
※SQL Server 2019の仕様、SQL Server 2016/2017では、該当手順は不要だっ
た。そして、SQL Serverサービス、PolyBaseサービスを再起動する必要
Configure SQL Server 2019 PolyBase
scale-out groups
■SQL Server 2019のPolyBaseのスケールアウトグループ構成要件(EXCELファイル)
①EXCELファイルをアクセスする場合、各PolyBaseサーバーから同時にアクセスでき
るようにすること。
EX)共有フォルダにEXCELを配置する
②各PolyBaseサーバーに、EXCEL ODBCドライバーのインストールおよび構成設定す
る必要がある。この構成設定の中に、共有フォルダにあるEXCELのパスを設定する。
Configure SQL Server 2019 PolyBase
scale-out groups
■SQL Server 2019のPolyBaseのスケールアウトグループデモ構成詳細(Azure VM)
①Active Directory環境
1台:Standard D4 v3 (4 vcpu 数、16 GB メモリ)
②SQL Server 2019 Developer CTP2.2
5台:Standard D4 v3 (4 vcpu 数、16 GB メモリ)
そのうち、1台ヘッドノード、4台コンピューティングノード
Configure SQL Server 2019 PolyBase
scale-out groups
SQL Server
2019
SQL Server
2019
PolyBase
Engine
PolyBase
DMS
PolyBase
DMS
Head node Compute node
1台 4台
PolyBase Scale out Group
※Developer/Enterprise Editionの場合、ヘッドノード
と計算ノード、Standard Editonの場合、計算ノードのみ
Active Directory
■SQL Server 2019のPolyBaseのスケールアウトグループ構成手順
①すべてのマシンに、PolyBase を使用する SQL Server をインストールする
②1 つの SQL Server をヘッド ノードとして選択する
③その他の SQL Server インスタンスをコンピューティング ノードとして追加する
■T-SQL構文
sp_polybase_join_group (TRANSACT-SQL)を使って、ヘッドノードにコンピューティング
ノードを追加する
Configure SQL Server 2019 PolyBase
scale-out groups
sp_polybase_join_group (
@head_node_address=N'head_node_address’,
@dms_control_channel_port=dms_control_channel_port,
@head_node_sql_server_instance_name=head_node_sql_server_instance_name)
チャンネルポートのデフォルトは TCP16450
EX)
EXEC sp_polybase_join_group 'SQLPB01', 16450, 'MSSQLSERVER';
SQLPB01に、コマンドを実行するサーバー(それぞれの計算ノード)を追加する。
■気になった点
①SSMS18 preview6で、未参加の計算ノードのス「ケールアウトグループ」のメニュー
をクリックすると、SSMS自体が落ちる。
なぜか、GAされたSSMS17.9.1でも同じ現象が発生している。
調べたところ、SQL Server PolyBaseエンジンサービスが止まっている場合、SSMS
が落ちる。
②スケールアウトグループから計算ノードを(exec sp_polybase_leave_group)外し
た後に、PolyBaseサービスとPolyBase DMSサービスを再起動する必要だが、PolyBase
DMSサービスは再起動できていて、PolyBaseサービスは2度立ち上がらなくなる。結果マシン自
体を再起動することをお勧めする。
Configure SQL Server 2019 PolyBase
scale-out groups

Polybase scale outgroups