Qlik は、Qlik Sense などのツールを含む、従来型のビジネスインテリジェンス (BI) 分析ソフトウェアを提供しています。これにより、対話型のガイド付き分析アプリケーションやダッシュボードを迅速に開発・提供できます。このトピックでは、Qlik Sense Desktop を Hologres に接続して、データを可視化および分析する方法について説明します。
制限事項
-
Qlik Sense は現在、PostgreSQL から外部テーブルのスキーマを同期することはサポートされていません。そのため、ユーザーインターフェイスから外部テーブルのメタデータをクエリできません。たとえば、[Add data to Hologres] ウィザードで、PostgreSQL 経由で Hologres インスタンス (エンドポイント例:
cn-hangzhou.hologres.aliyuncs.com) に接続した後、[Owner] をpublicに設定し、[Tables] リストからordersなどのテーブルを選択して、右側のパネルでデータをプレビューできます。 -
この制限は、SQL ステートメントを使用するクエリには影響しません。次の例は、Qlik Sense のデータロードエディタページにあるデフォルトスクリプトを示しています。
SET ThousandSep=','; SET DecimalSep='.'; SET MoneyThousandSep=','; SET MoneyDecimalSep='.'; SET MoneyFormat='$#,##0.00;-$#,##0.00'; SET TimeFormat='h:mm:ss TT'; SET DateFormat='M/D/YYYY'; SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT'; SET FirstWeekDay=6; SET BrokenWeeks=1; SET ReferenceDay=0; SET FirstMonthOfYear=1; SET CollationLocale='en-US'; SET CreateSearchIndexOnReload=1; SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec'; SET LongMonthNames='January;February;March;April;May;June;July;August;September;October;November;December'; SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; SET LongDayNames='Monday;Tuesday;Wednesday;Thursday;Friday;Saturday;Sunday'; SET NumericalAbbreviation='3:k;6:M;9:G;12:T;15:P;18:E;21:Z;24:Y;-3:m;-6:μ;-9:n;-12:p;-15:f;-18:a;-21:z;-24:y'; LIB CONNECT TO 'PostgreSQL_xxx-cn-hangzhou.hologres.aliyuncs.com';
Qlik は Hologres 外部テーブルの可視化をサポートしていません。ただし、[データロードエディター] を使用して、SQL ステートメントで外部テーブルにクエリを実行し、可視化分析を行うことができます。
Qlik Sense Desktop から Hologres への接続
-
Qlik Sense Desktop のインストール
Qlik Sense Desktop をインストールします。詳細については、Qlik の公式ドキュメントをご参照ください。
-
Hologres への接続
-
Qlik Sense Desktop を開き、右上の [新規アプリの作成] をクリックします。
-
[新しいアプリの作成] ダイアログで、アプリの名前を入力し、Create をクリックします。
-
表示されるダイアログで、[アプリを開く] をクリックします。アプリページで、[ファイルおよびその他のソースからデータを追加] をクリックします。
-
表示されるダイアログで、[PostgreSQL] を選択して新しい接続を作成し、パラメーターを設定します。
パラメータ
説明
Host name
Hologres インスタンスのパブリックエンドポイント。 エンドポイントを取得するには、Hologres コンソールのインスタンス詳細ページに移動し、Network Information セクションでエンドポイントを確認します。
Port
Hologres インスタンスのポートです。ポートを取得するには、Hologres コンソールのインスタンス詳細ページに移動し、Network Information セクションでポートを確認します。
Database
Hologres 内のデータベース名です。
User name
Alibaba Cloud AccessKey ID です。詳細については、「Create an AccessKey pair」をご参照ください。
Password
Alibaba Cloud AccessKey Secret です。詳細については、「Create an AccessKey pair」をご参照ください。
-
接続のテスト をクリックします。
接続に成功しましたというメッセージが表示されたら、右下隅の Create をクリックして新しい接続を保存します。 -
PostgreSQL データ接続を設定します。
-
ターゲットの [所有者] (Hologres のスキーマに対応) を選択します。 たとえば、[public] を選択します。
-
[Tables] エリアで、分析対象のテーブルを選択します。
-
-
[データの追加] をクリックします。 Qlik Sense は Hologres からデータをインポートします。 その後、Qlik Sense でデータを表示できます。
説明このモードでは、Qlik Sense はページ操作に基づいてデータベースにリアルタイムクエリを送信するのではなく、すべてのデータをインメモリエンジンにロードします。
-
-
Direct Query モードの設定
データベースにペタバイト規模のデータが格納される可能性がある本番環境では、データをインポートする代わりに、Qlik Sense の Direct Query モードを使用することを推奨します。Direct Query モードの詳細については、Qlik の公式ドキュメントをご参照ください。
-
アプリを開きます。上部のナビゲーションバーで、を選択します。
-
データソースの接続情報がページ右側に表示されます。右下隅の
アイコンをクリックして、接続文字列をエディターに挿入します。このアイコンのツールチップは [Insert connection string] です。 -
スクリプトエディタで、クエリ スクリプトの先頭に
Direct Queryを入力すると、Direct Query モードが有効になります。以下はスクリプトの例です。SET ThousandSep=','; SET DecimalSep='.'; SET MoneyThousandSep=','; SET MoneyDecimalSep='.'; SET MoneyFormat='$#,##0.00;-$#,##0.00'; SET TimeFormat='h:mm:ss TT'; SET DateFormat='M/D/YYYY'; SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT'; SET FirstWeekDay=6; SET BrokenWeeks=1; SET ReferenceDay=0; SET FirstMonthOfYear=1; SET CollationLocale='en-US'; SET CreateSearchIndexOnReload=1; SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec'; SET LongMonthNames='January;February;March;April;May;June;July;August;September;October;November;December'; SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; SET LongDayNames='Monday;Tuesday;Wednesday;Thursday;Friday;Saturday;Sunday'; SET NumericalAbbreviation='3:k;6:M;9:G;12:T;15:P;18:E;21:Z;24:Y;-3:m;-6:μ;-9:n;-12:p;-15:f;-18:a;-21:z;-24:y'; LIB CONNECT TO 'PostgreSQL_hgpcxxx-xxxxxxxxxxxxx-xx-xxxxxxhou.hologres.aliyuncs.com'; DIRECT QUERY dimension l_shipmode, l_shipdate, o_orderstatus measure l_tax, l_quantity FROM public.lineitem INNER JOIN public.orders ON public.lineitem.l_orderkey = public.orders.o_orderkey;SET ThousandSep=','; SET DecimalSep='.'; SET MoneyThousandSep=','; SET MoneyDecimalSep='.'; SET MoneyFormat='$#,##0.00;-$#,##0.00'; SET TimeFormat='TTh:mm:ss'; SET DateFormat='YYYY/M/D'; SET TimestampFormat='YYYY/M/D TTh:mm:ss[.fff]'; SET FirstWeekDay=6; SET BrokenWeeks=1; SET ReferenceDay=0; SET FirstMonthOfYear=1; SET CollationLocale='en-US'; SET CreateSearchIndexOnReload=1; SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec'; SET LongMonthNames='January;February;March;April;May;June;July;August;September;October;November;December'; SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; SET LongDayNames='Monday;Tuesday;Wednesday;Thursday;Friday;Saturday;Sunday'; SET NumericalAbbreviation='3:k;6:M;9:G;12:T;15:P;18:E;21:Z;24:Y;-3:m;-6:μ;-9:n;-12:p;-15:f;-18:a;-21:z;-24:y'; LIB CONNECT TO 'PostgreSQL_hgpostcn-cn-st21y8nlm007-cn-hangzhou.hologres.aliyuncs.com'; -- Direct Query と入力し、Direct Query モードを有効にします DIRECT QUERY dimension l_shipmode, l_shipdate, o_orderstatus measure l_tax, l_quantity FROM public.lineitem INNER JOIN public.orders ON public.lineitem.l_orderkey = public.orders.o_orderkey; -
右上隅の [データのロード] をクリックします。すると、Qlik Sense がリアルタイムクエリを送信します。
-
ビジュアライゼーションの作成を開始するには、上部のナビゲーションバーで を選択します。
-
シート編集ページで、左側にある [グラフ] をクリックし、グラフの種類を選択して可視化を作成します。
説明-
フィールドをキャンバスに直接ドラッグすると、Qlik Sense は Direct Query モードでクエリを生成できません。ビジュアライゼーションを作成するには、[チャート] をクリックすることをお勧めします。
-
応答時間を改善するには、ディメンションより先にメジャーを追加することを推奨します。
-
Qlik Sense におけるデータ操作と分析の詳細については、Qlik の公式ドキュメントをご参照ください。
-
カスタム ODBC 接続を使用した Hologres への接続
Qlik Sense のテーブルウィザードで外部テーブルをクエリする必要がある場合は、カスタム ODBC 接続を使用して Hologres に接続できます。
-
前提条件
-
Qlik Sense サーバーとクライアントの両方に PostgreSQL の ODBC ドライバーをインストールします。ODBC ドライバーは PostgreSQL の公式サイトからダウンロードできます。
-
Hologres は PostgreSQL 11 エコシステムと互換性があるため、psqlodbc_11_01_0000 以降のバージョンをインストールしてください。
-
-
DSN の設定
-
に移動し、[ODBC データ ソース (64 ビット)] ツールを開きます。
-
システム DSN タブに切り替え、Add をクリックします。
-
ドライバーリストで、PostgreSQL Unicode(x64) を選択し、Complete をクリックします。
説明ユーザー DSN はユーザー固有ですが、システム DSN はシステム上のすべてのユーザーが使用できます。Web BI サーバー上で ODBC を介して Hologres にアクセスする必要がある場合は、システム DSN を使用する必要があります。
-
ダイアログで、次の表に示すとおりに Hologres サーバー情報を入力します。psqlODBC 設定ダイアログで、[Data Source] を
Hologresに設定し、[SSL Mode] をdisableに設定します。パラメータ
説明
User name
Alibaba Cloud AccessKey ID です。AccessKey 管理ページで AccessKey ID を取得します。
Password
Alibaba Cloud AccessKey Secret です。AccessKey 管理ページで AccessKey Secret を取得します。
Server
Hologres インスタンスのパブリックエンドポイントは、Hologres コンソールのインスタンス詳細ページのネットワーク情報セクションで確認できます。
Port
Hologres インスタンスのポートは、Hologres コンソールのインスタンス詳細ページにある Network Information セクションで確認できます。
Database
Hologres 内のデータベース名です。
-
情報を入力した後、[Test] ボタンをクリックします。「Connection successful」というメッセージが表示された場合、設定が正しいことを示します。
-
保存 をクリックして DSN を保存します。[データソース] を
Hologresに、[SSL モード] をdisableに設定します。
-
-
Hologres への接続
ローカル DSN を設定し、Qlik Sense をインストールした後、次の手順に従って Qlik Sense を Hologres に接続します。
-
Qlik Sense Desktop アプリケーションを開きます。[ファイルおよびその他のソースからデータを追加] をクリックします。
-
表示されたウィンドウで、Odbc をクリックして新しい接続を作成します。 [新しいデータソースへの接続] ページで、[ODBC] コネクタを選択し、[次へ] をクリックします。
-
リストから作成した DSN を選択し、接続名を入力します。
-
Create をクリックして接続を保存します。 これで、public などの所有者 (Hologres のスキーマ) を選択できるようになります。 この接続方法により、Qlik Sense は外部テーブルのスキーマを読み取ることができます。 接続に成功したら、[データベース] ドロップダウンリストから
tpch_100などのターゲットデータベースを選択します。 次に、[所有者] ドロップダウンリストからpublicなどの対応するスキーマを選択します。 利用可能なテーブルがテーブルエリアに一覧表示されます。 -
[Tables]リストから、ordersなどの分析対象のテーブルを選択し、右側のパネルでそのフィールドとデータをプレビューします。情報を確認した後、[Next]をクリックし、次に [Add data] をクリックします。Qlik Sense は分析のために Hologres からデータをインポートします。
説明このモードでは、Qlik Sense はページ操作に基づいてデータベースにリアルタイムクエリを送信するのではなく、すべてのデータをインメモリエンジンにロードします。
-