Get started with Apache Superset and PostgreSQL®の翻訳です。
2021年8月4日
ApacheスーパーセットとPostgreSQL®を始めよう
Apache Supersetを使用して、Aiven環境でPostgreSQLテーブルからデータ可視化を作成し、ビジネス上の意思決定に活用する方法をご覧ください。
Apache SupersetとPostgreSQLを始めよう
「百聞は一見にしかず」は多くの言語でよく使われることわざです。同様に、データの世界では、視覚化は膨大な量の生のポイントを画像に凝縮し、ビジネス上の意思決定を促す洞察に満ちたストーリーを作成するために使用することができます。datavizのエコシステムにはいくつかのツールが存在し、中でもApache Supersetは、オープンソースであることと、データ探索、視覚化、共有のための高度な機能リストによって、多くの支持を得ている。
このブログポストでは、既存のPostgreSQLテーブルを基にApache Supersetで素晴らしいビジュアライゼーションを作成する方法を紹介します。
今すぐPostgreSQLフリープランを入手する
PostgreSQLをもっと深く知る準備はできましたか?PostgreSQLの無料プランにサインアップしてください。
Apache SupersetをDocker上で動かす
Dockerはここでは心強い味方です!Dockerのおかげで、手動でセットアップを理解し実装する必要なく、複雑なソフトウェア・インフラを数分で立ち上げることができます。新しいツールをテストしているこのようなケースでは、Dockerは完璧にフィットします!
まずはApache SupersetのGitHubレポをクローンして、ターミナルからsuperset
フォルダに移動します:
git clone https://github.com/apache/superset.git
cd superset`クリップボードにコピーする
次に docker-compose
を使って Apache Superset に必要な全てのコンテナを作成する:
`docker-compose -f docker-compose-non-dev.yml up`クリップボードにコピーする
ブームだ!Apache Supersetの準備が整いました。
では、ブラウザで localhost:8088
にアクセスして、最も安全なデュオでログインしてみよう(ユーザは admin
、パスワードは admin
)。
気になる方は、Apache Superset docker page をチェックしてみてください。
データセットをPostgreSQLにプッシュする
このブログでも以前、Pythonを使ってKaggleの関連データセットをPostgreSQLにプッシュする方法を紹介しました。今回の例では、そこで言及されている出力を使うこともできますし、独自のものを使うこともできます。この例の最終結果は demo-pg
という名前の PostgreSQL インスタンスで、以下のような内容の happiness
というテーブルを含んでいます:
survey_yr|country|overall_rank|score|gdp|generosity|freedom|social_support|life_exp|gov_trust。
----------+---------+--------------+---------+--------+------------+----------+----------------+----------+----------
19|フィンランド|1|7.7690|1.3400|0.1530|0.5960|1.587|0.9860|0.3930
19|デンマーク|2|7.60|1.3830|0.2520|0.5920|1.573|0.9960|0.4100
19|ノルウェー|3|7.554|1.4880|0.2710|0.6030|1.582|1.0280|0.3410`クリップボードへコピー
Apache SupersetをPostgreSQLに接続する
Apache Supersetは幅広いソースデータベースをサポートしており、PostgreSQLにはpsycopg2ライブラリを使用しています。PostgreSQLのサポートは、デフォルトのDockerセットアップに既に含まれています。
Apache Superset UIにアクセスして、PostgreSQLデータベースを指す新しいデータソースを定義するだけです:
1.Dataを選択し、次にDatabasesを選択します。
2.+DATABASEボタンをクリックします。
3.モーダルウィンドウの一番下で、Connect this database with a SQLAlchemy URI string instead を選択します。
4.4. DISPLAY NAME として demo-pg
を挿入します(あるいは独自のインスタンス名)。
5.PostgreSQL URI を SQLALCHEMY URI として使います。PostgreSQL URIはAivenのコンソールのサービス詳細ビューのOverviewタブで確認できます。
6.接続を確認し、「Connection looks good!
7.ADD**をクリックして、demo-pg
データベース定義を永続化します。
さて、いよいよhappiness
テーブルをインクルードする番だ。
1.Apache Superset UIに戻って、Datasets タブに切り替えます。
2.DATASOURCEにdemo-pg
を、SCHEMAにpublic
を、そしてテーブルに - 驚くことなかれ - happiness
を入力してテーブルを作成する。
3.ADDをクリックしてデータソースの定義を永続化する。
じゃじゃーん!
データを可視化する
さて、芸術的なスキルを使って、データのビジュアライゼーションを作成する準備が整いました。このようにデータを表現することで、処理が非常に簡単になります。
1.Apache Superset UIに戻って、Charts タブに移動しましょう。
2.+CHART**をクリックします。
3.ポップアップウィンドウで、先ほど作成したpublic.happiness
データセットを選択し、Pivot Table v2を可視化として選択します。
このデータセットを使って、長年にわたって最も幸せな国トップ10のヒートマップを作成してみましょう。以下のような設定で可能です:
- ROWS** に
country
を指定する。 - COLUMNS** には
survey_yr
を指定する。 - METRIC**では、集計関数として
AVG
を使用し、overall_rank
カラムに基づく SIMPLE 計算を選択します。 - FILTERSセクションでは、
overall_rank
のメトリクスが<=
から10
であることに基づくSIMPLE**フィルタを追加します。 - 一番下のAGGREGATION FUNCTIONを
Average
に設定すると、ピボット・テーブルの行/列全体の集計が行われます。
Query** パラメータの概要を確認してください:
次に、CUSTOMIZE タブで以下のオプションを設定します:
- PIVOT TABLE TYPE** では
Table Heatmap
を選択する。 - ROWS SORT BY** は
value ascending
を選択します。 - COLS TOTALS** の選択を外します。
- 可視化の名前を
Country ranking heatmap
とする。
CUSTOMIZEの上にあるRUN**ボタンを押す準備ができました。
そして、過去5年間に少なくとも1度トップ10に入った国を、全体の平均順位で並べた赤い網掛けのヒートマップが完成した。
これらの国が世界のどこにあるのかを見るために、同じデータを使って地図を作成することができます。以下の設定を試してみてください:
- 可視化タイプとして 世界地図 を設定する。
- COUNTRY COLUMN** としての
country
- フルネーム
を **COUNTRY FIELD TYPE** とする。 **METRIC FOR COLOR** パラメータに
AVG集計を使用した
score` 列に基づく SIMPLE 計算を使用します。 - COUNTRY COLOR SCHEME**を選択してください。スクリーンショットは
赤/黄/青
ですが、選択はあなた次第です。ワイルドに!
出来上がった地図は、南半球の幸福度を上げるために多くの仕事が必要であることを明確に示している。
データセットに計算フィールドを追加する
ソースデータセットに必要なフィールドがすべて含まれていないことがある。この例でもそうで、survey_yr
フィールドには年の下2桁(つまり 18
、19
)しか含まれていない。これは Apache Superset がタイムスタンプとして認識しないことを意味し、トレンドの可視化ができなくなる。
恐れることはない!Apache Supersetでは、計算カラムを追加することで、元のテーブルを変更することなくデータセットの形状を変更することができます。
1.Apache Superset UI で、Datasets パネルに切り替えます。
2.happinessデータセットのActionセクションの下のEdit鉛筆アイコンをクリックする。
3.CALCULATED COLUMNS タブを開き、以下の設定で新しい項目を作成する:
* SQL EXPRESSION** として 2000+survey_yr
を設定する。
* LABEL** を Year
に設定します。
* DATETIME` を DATA TYPE に設定します。
* データ形式**として%Y
を設定します。
* チェックボックスを選択します。
これでYear
カラムが利用できるようになり、上位5位を時系列で折れ線グラフにしたようなトレンドビジュアライゼーションを作成できるようになりました。
チャレンジして、このチャートをアパッチ・スーパーセットとして自分で作ってみてください。
ご覧の通り、フィンランドはとても幸せな国です!
まとめ
データセットは、適切に保存され、クエリに利用できるようになって初めて役に立つ。データセットは、洞察が発見され、全社的に伝達されることで意味を持つようになります。PostgreSQLとApache Supersetの組み合わせは、データの保存、発見、可視化のためのクラス最高のソリューションを提供し、企業が効果的かつデータ駆動型になることを可能にします。
詳細はこちら
- Aiven for PostgreSQL: 管理されているPostgreSQLインスタンスを取得します。
- Apache Superset Documentation: 設定の詳細を閲覧できます。
--
まだAivenのサービスをご利用になっていませんか?https://console.aiven.io/signupから無料トライアルにお申し込みください!
また、changelogやblogのRSSフィード、またはLinkedInやTwitterのアカウントをフォローし、製品や機能関連の最新情報をご確認ください。