はじめに

このチュートリアルでは、MySQLのデータソースとAzure Synapseを対象に、Qlik Replicateを利用してリアルタイムにデータをレプリケートするための手順をご紹介します。

【検証環境】

  • Qlik Replicate 6.6.0 SR2 on Windows
  • MySQL Community Edition 5.7.18 on Windows
  • Azure Synapse (Formerly SQL DW)

※Azureアカウントがある前提で本チュートリアルは記述されています。
※Azureの利用料金が発生します。実機検証の際は検証後に環境のクリーンアップをしていただくなど、コストの発生・増加には十分にご注意ください。

準備

ADLS Gen2の作成と設定

Azureポータルで[Storage accounts]を選択します。

001

[+Add]を選択します。

002

[Basic]タブの各項目を画像を参考に設定します。設定が完了したら[Next : Networking]を選択します。

  • Resource group : 任意の名前を指定。ここでは、QDI_Synapse
  • Storage account name : 任意の名前を指定。ここでは、qdisynapsedemo
  • Account kind : StorageV2(general purpose v2)を選択

003

Connectivity methodに[Public endpoint ( all networks)]を指定します。

本チュートリアルでは、ネットワークはpublicに公開する設定としています。お手元で試される場合は、所属組織のポリシーやニーズに従って設定してください。

004

画面下部の[Next : ~]を二回クリックし、[Advanced]タブに移動します。

[Hierarchical namespace(階層型の名前空間)]をEnabled(有効)にします。その他の設定は既定のままとします。

005

左下の[Review + create]をクリックし、設定内容を確認して問題なければ[Create]を選択してStorage Accountを作成します。

006

これでStorage Accountの作成は完了です。(ストレージがデプロイされるまでに数分かかることがあります。)

 

Azure Active Directoryへのアプリ登録

続いて、Qlikデータ統合製品からAzure上のStorage AccountなどへのAPIアクセスを許可するためにAzure Active Directoryへのアプリ登録を行います。

Azureポータルで[Azure Active Directory]を選択します。

007

左側のメニューから[App registrations]を選択します。

続いて、[+ New registration]を選択します。

008

任意の名前を設定し、[Register]を選択して登録します(ここでは「QDISYNAPSEAPP」)。

009

ここで生成される”Application (client) ID” と “Directory (tenant) ID”を後ほどQlik Replicateからの接続パラメータとして使用しますので、テキストエディタなどにコピー&ペーストして保存してください。

010

左側のメニューから[API permissions]を選択します。

続いて、[+ Add permission]を選択します。

011

[Microsoft API]配下の[Azure Data Lake]を選択します。

012

[Delegated permissions]配下の[user_impersonation]にチェックを入れ、[Add permissions]を選択します。

013

左側メニューから[Certificates & secrets]を選択します。

続いて、[+ New client secret]を選択します。

014

Descriptionを空欄のまま、期限を[In 1 year]とし、[Add]を選択します。

015

直後に生成されるClient secretの[value]をテキストエディタなどにコピー&ペーストし安全な場所に保存してください。以降、このページを離れるとSecretのValueは二度と確認することができなくなりますので、必ず生成直後に保存してください。

050

 

ADLS Gen2のストレージアカウントの設定

作成したStorage Accountのページに移動し[Access key]を選択します。後ほどQlik Replicateの設定にこちらのKey1の[Key]を使用しますので控えておいてください。

016

続いてコンテナを作成します。左側メニューから[Containers]を選択し、[+ Container]を選択します。

018

右側に表示されるNew containerにて、任意のコンテナ名(ここでは「replicate」)を指定し、[Create]を選択してコンテナを作成します。

019

コンテナ一覧から、作成した[replicate]を選択します。

020

[+Add Directory]を選択します。

021

右側に表示されるメニューからディレクトリを作成します。Nameを「landing」とし、[Save]を選択します。

022

作成したreplicateコンテナのページからStorage account「qdisynapsedemo」のページに移動します。

023

[Access Control (IAM) ] を選択します。続いて[+Add]、[Add role assignment]の順に選択します。

024

画面右側に表示される設定メニューで以下の項目を設定し、[Save]を選択します。

  • Role:  Storage Blob Data Contributor
  • Assign access to:  User, group, or service principal
  • Select:  先ほどADで登録したアプリ名を選択(ここでは「QDISYNAPSEAPP」)

025

 

Qlik ReplicateとAzure Synapseの設定

Microsoft SQL Server Native Client 11.0のインストール

Qlik ReplicateがインストールされているサーバーにMicrosoft SQL Server Native Client 11.0をインストールしてください。※ここでは手順を割愛します。

Microsoft® SQL Server® 2012 Native Client – QFE

 

Azure Synapse (formerly SQL DW) SQL Poolの作成

Azureポータルから[ Azure Synapse Analytics (formerly SQL DW) ]を選択します。

026

[+Add]を選択します。

027

[Basics]タブで以下のように設定します。

  • Resource group : 作成したStorage Accountと同じグループを選択します。ここではQDI_Synapse
  • SQL pool name : 任意のSQL pool (DWH)名を指定。ここでは「qdisynapsesqlpool」
  • Server : [Create new]を選択し、右側に表示される画面でサーバーを作成
  • Performance level : [Select performance level]から[DW100C]を選択

030

※Serverの作成方法:画像を参考に、パラメータを指定し[OK]を選択します。

  • Server name : 任意のサーバー名。ここではqdisnapsevmとします。
  • Server admin login : 任意のユーザー名。ここではshoとします。
  • Password : 任意のログインパスワード。
  • Location : 任意のサーバーロケーション。

029

※Performance levelの変更方法:右側の[Configure performance]でGen2配下のスライダーを動かし、[DW100c]に設定して[Apply]を選択します。

031

 

Basicタブの設定が完了したら、画面左下の[Next : Networking > ]を選択します。

051

[Networking]のタブで以下の設定を行い、[Review + create]を選択します。設定内容に問題が無ければ[Create]を選択し、SQL poolを作成します。

  • Connectivity method : [Public endpoint] ※組織のポリシーにあわせて設定してください。
  • Allow Azure services and resources to access this server : [Yes]
  • Add current client IP address : [Yes]

032

SQL poolのDeployが完了したら[Go to resource]を選択してリソースの画面に移動します。

033

[Overview]ページの[Server name]を後ほどQlik Replicateからの接続に使用します。

034

 

Master Keyの作成

続いて、Storage AccountとSQL Poolを接続するためのMaster Keyを作成します。

前節で作成したSQL pool「qdisynapsesqlpool」のページに移動します。

作成したSQL Poolのメニューから[Query editor (preview)]を選択し、SQL Poolの認証情報でログインします。

035

クエリエディタに以下のSQLを貼り付けます。前述の手順で控えておいたStorage Accountの[Access keys]タブにあるKeyの値を、SQLクエリのSECRETに貼り付けてSQLを実行します。

CREATE MASTER KEY;

CREATE DATABASE SCOPED CREDENTIAL AzureStorageCredential

WITH

IDENTITY = 'qdisynapsedemo',

SECRET = '<Key1の値に差し替える>';

以下のメッセージが表示されたら成功です。

037

 

firewallの設定

Qlik ReplicateがインストールされているサーバーのFirewall設定を開いて、以下の送信ポートを解放してください。

  • 1433
  • 11000-11999 ※Qlik ReplicateがAzure上で稼働してる場合のみ
  • 14000-14999 ※Qlik ReplicateがAzure上で稼働してる場合のみ

 

Qlik ReplicateでAzure SynapseのEndpointを作成

Azure Synapseの接続エンドポイントを作成します。ソースとなるMySQLの手順は省略します。MySQLソースの設定方法については以下の記事を確認ください。

Qlik Replicate–MySQLベースのDBソースの利用

Qlik  Replicateの画面で、[Manage Endpoint Connections]を選択します。

038

[+ New Endpoint Connection]を選択します。

039

以下の項目を設定します。

  • Name :
  • Role : Target
  • Type : Microsoft Azure Synapse Analytics
  • Microsoft Azure Synapse Analytics
    • Server name : 作成したSQL poolのサーバー名。SQL poolのOverviewから確認できます。ここではqdisynapsevm.database.windows.net
    • Authentication method : SQL Authentication
    • Port : 1433
    • Username : 作成したSQL poolのユーザー名。ここではsho
    • Password : 作成したSQL poolのパスワード
    • Database name : [Browse…]から、先ほど作成したSQL Poolを選択します。ここではqdisynapsesqlpool
    • Automatically create SQL Server credential Use existing SQL Server credential:チェックを入れ
  • Azure Storage
    • Storage Type : Azure Data Lake Storage (ADLS) Gen2
    • Storage Account : 作成したStorage Account名。ここでは、qdisynapsedemo
    • File System : Storage Accountで作成したContainer名。ここではreplicate
    • Azure Active Directory ID : AADのApp registrationから登録したアプリのOverviewから確認できるDirectory (tenant) ID
    • Azure Active Directory application ID :AADのApp registrationから登録したアプリのOverviewから確認できるApplication (client) ID
    • Azure Active Directory application key:AADのApp registrationから登録したアプリのCertificates & secretsから作成したClient secretの値。予め控えておいたもの。
    • Access key: 作成したStorage AccountのAccess keysから確認できるKey1
    • Target folder:[Browse…]から[landing]を選択

040

[Test Connection]でテスト接続し問題なければ[Save]でエンドポイントを保存して[Close]します。

 

Replication Taskの作成と実行

[+ New Task]を選択します。

041

タスク作成画面で、以下の通り設定を行い[OK]を選択します。

  • Name : MySQL2AzureSynapse
  • Replication Profile : Unidirectional
  • Task Option : Full Load, Apply Changes, Store Changes すべてをEnable (青)に

042

続いて、ソースとターゲットの設定を行います。

MySQL_SRCをソース(上)に、AzureSynapse_TGTをターゲット(下)にドラッグ&ドロップで設定します。

043

[Table Selection]を選択します。

044

[Schemas : ]でsalesスキーマを選択し、[Search]をクリックします。9つのテーブルが左下のResultsに表示されます。

続いて、[ >> ]を選択して9つすべてのテーブルを移行対象テーブル(Selected Tables)に指定します。[OK]を選択します。

045

[Save]でタスク設定を保存したのちに、[Run]でタスクを実行します。

046

自動的にMonitor画面に切り替わり、[Full Load]の実行状況を確認できます。

047

SQL PoolのQuery Editorで、データが移行できていることも確認できました。

049

Replicateを使ってAzure Synapseへリアルタイムにデータをレプリケートする手順は以上です。

なお、Azure Synapse上に移動したsales ODSのデータをQlik Compose for Data Warehousesを使ってデータウェアハウスおよびデータマートを構築することが可能です。

Qlik Compose for Data Warehousesの操作方法については、以下のチュートリアルをご参照ください。

Qlik Compose for Data Warehousesチュートリアル