LoginSignup
3
2

Apache SupersetとPostgreSQL®を始めよう

Posted at

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スーパーセットのデフォルト画面

気になる方は、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データベース定義を永続化します。

demo-pgデータベースエントリ

さて、いよいよhappinessテーブルをインクルードする番だ。

1.Apache Superset UIに戻って、Datasets タブに切り替えます。
2.DATASOURCEdemo-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 FUNCTIONAverageに設定すると、ピボット・テーブルの行/列全体の集計が行われます。

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桁(つまり 1819)しか含まれていない。これは 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位を時系列で折れ線グラフにしたようなトレンドビジュアライゼーションを作成できるようになりました。

Top 5 trendline

チャレンジして、このチャートをアパッチ・スーパーセットとして自分で作ってみてください。

ご覧の通り、フィンランドはとても幸せな国です!

まとめ

データセットは、適切に保存され、クエリに利用できるようになって初めて役に立つ。データセットは、洞察が発見され、全社的に伝達されることで意味を持つようになります。PostgreSQLとApache Supersetの組み合わせは、データの保存、発見、可視化のためのクラス最高のソリューションを提供し、企業が効果的かつデータ駆動型になることを可能にします。

詳細はこちら

--

まだAivenのサービスをご利用になっていませんか?https://console.aiven.io/signupから無料トライアルにお申し込みください!

また、changelogblogのRSSフィード、またはLinkedInTwitterのアカウントをフォローし、製品や機能関連の最新情報をご確認ください。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2