Superset でのデータ探索
このチュートリアルでは、2011年に英国の組織の従業員が行ったフライトを含む実際のデータセットの探索を通して、Apache Superset の主要な概念を紹介します。各フライトに関する以下の情報が与えられています。
- 旅行者の部署。このチュートリアルの目的のために、部署はオレンジ、イエロー、パープルに名前が変更されています。
- チケットの費用。
- 旅行クラス(エコノミー、プレミアムエコノミー、ビジネス、ファーストクラス)。
- チケットが片道か往復か。
- 旅行日。
- 出発地と目的地に関する情報。
- 出発地と目的地の間の距離(km)。
データアップロード機能の有効化
CSV または Excel ファイルをデータベースにアップロードする機能を有効にする必要がある場合があります。次のセクションでは、例のデータベースでこの機能を有効にする方法について説明します。
上部のメニューで、**Data ‣ Databases** を選択します。リストから **examples** データベースを見つけて、**Edit** ボタンを選択します。

表示されるモーダルウィンドウで、**Extra** タブに切り替え、**Allow Data Upload** のチェックボックスをオンにします。最後に、**Save** ボタンをクリックします。

CSV データのロード
GitHub から CSV データセットをコンピュータにダウンロードします。Superset メニューで、**Data ‣ Upload a CSV** を選択します。

次に、**Table Name** に「*tutorial_flights*」と入力し、コンピュータから CSV ファイルを選択します。

次に、**Parse Dates** フィールドに「*Travel Date*」と入力します。

他のすべてのオプションをデフォルト設定のままにして、ページの下部にある **Save** を選択します。
テーブルの可視化
これで、**Datasets** タブに *tutorial_flights* がデータセットとして表示されるはずです。エントリをクリックして、このデータセットを使用して Explore ワークフローを起動します。
このセクションでは、旅行クラスごとのフライト数とコストを示すテーブルの可視化を作成します。
デフォルトでは、Apache Superset はデータの最後の 1 週間のみを表示します。この例では、データセット内のすべてのデータを可視化します。**Time ‣ Time Range** セクションをクリックし、**Range Type** を **No Filter** に変更します。

**Apply** をクリックして保存します。
次に、**Group by** オプションを使用して、テーブルの行を指定します。この例では、さまざまな旅行クラスを理解したいため、このメニューで **Travel Class** を選択します。
次に、**Metrics** オプションでテーブルに表示するメトリックを指定できます。
COUNT(*)
: テーブル内の行数(この場合は、各旅行クラスのフライト数)を表します。SUM(Cost)
: 各旅行クラスが費やした合計コストを表します。

最後に、**Run Query** を選択してテーブルの結果を表示します。

可視化を保存するには、画面の左上にある **Save** をクリックします。次のモーダルで、
- **Save as** オプションを選択し、チャート名に Tutorial Table と入力します(上部のメニューからアクセスできる **Charts** 画面で再度見つけることができます)。
- **Add To Dashboard** を選択し、Tutorial Dashboard と入力します。最後に、**Save & Go To Dashboard** を選択します。

ダッシュボードの基本
次に、ダッシュボードインターフェイスを探索します。前のセクションに従った場合は、ダッシュボードがすでに開いているはずです。そうでない場合は、上部のメニューで Dashboards を選択し、ダッシュボードのリストから Tutorial dashboard を選択して、ダッシュボードに移動できます。
このダッシュボードには、前のセクションで作成したテーブルが表示されているはずです。**Edit dashboard** を選択し、テーブルの上にマウスを合わせます。テーブルの右下隅を選択すると(カーソルも変化します)、ドラッグアンドドロップでサイズを変更できます。

最後に、右上の Save changes を選択して変更を保存します。
ピボットテーブル
このセクションでは、より複雑な可視化であるピボットテーブルを使用して分析を拡張します。このセクションの終わりまでに、部署ごと、旅行クラスごとに、最初の 6 か月間のフライトの月間支出を示すテーブルを作成します。
右上の隅にある **+ ‣ Chart** を選択して新しいチャートを作成します。データソースとして tutorial_flights を再度選択し、可視化タイプをクリックして可視化メニューに移動します。**Pivot Table** の可視化を選択し(検索ボックスにテキストを入力してフィルタリングできます)、**Create New Chart** を選択します。

**Time** セクションで、Time Column を Travel Date のままにします(データセットに時間列が 1 つしかないため、これは自動的に選択されます)。次に、Time Grain を月として選択します。これは、日次データがあると、パターンを把握するには詳細すぎるためです。次に、Time Range セクションの Last week をクリックし、Custom で 2011 年 1 月 1 日と 2011 年 6 月 30 日の開始日/終了日を直接入力するか、カレンダーウィジェットを使用してそれぞれ選択することにより、2011 年の最初の 6 か月間の時間範囲を選択します(月名を選択してから年を選択すると、遠い日付にすばやく移動できます)。

次に、**Query** セクションで、デフォルトの COUNT(*) を削除し、デフォルトの SUM 集計を保持して Cost を追加します。Apache Superset は、リストの左側の列の記号でメトリックのタイプを示します(文字列の場合は ABC、数値の場合は #、時間の場合は時計の文字盤など)。
**Group by** で、**Time** を選択します。これにより、Time セクションで定義した Time Column と Time Grain の選択が自動的に使用されます。
**Columns** で、最初に Department を選択し、次に Travel Class を選択します。すべて設定されました。**Run Query** を実行して、いくつかのデータを表示しましょう!

行に月が表示され、列に Department と Travel Class が表示されるはずです。このチャートを、以前に作成した既存の Tutorial Dashboard に公開します。
折れ線グラフ
このセクションでは、データセット全体の月ごとのチケットの平均価格を理解するための折れ線グラフを作成します。
Time セクションで、以前と同様に、Time Column を Travel Date、Time Grain を month のままにしますが、今回は時間範囲として、データセット全体を調べたいため、No filter を選択します。
Metrics で、デフォルトの COUNT(*)
メトリックを削除し、代わりに AVG(Cost)
を追加して平均値を表示します。

次に、**Run Query** を選択して、グラフにデータを表示します。
どのように表示されますか?12 月に平均コストが上昇していることがわかります。ただし、片道と往復のチケットの両方を組み合わせるのではなく、チケットタイプごとに 2 つの別々の線を表示する方が理にかなっているかもしれません。
Group by ボックスで Ticket Single or Return を選択し、**Run Query** を再度選択して、これを行いましょう。素晴らしい!平均して、片道チケットは往復チケットよりも安く、12 月の大きなスパイクは往復チケットによって引き起こされていることがわかります。
チャートはすでにかなり見栄えが良くなっていますが、左側のペインにある Customize タブに移動して、さらにカスタマイズしましょう。このペイン内で、Color Scheme を変更し、Show Range Filter ドロップダウンで No を選択して範囲フィルターを削除し、X Axis Label と Y Axis Label を使用してラベルを追加してみてください。

完了したら、Tutorial Dashboard にチャートを公開します。
マークアップ
このセクションでは、ダッシュボードにテキストを追加します。すでにそこにいる場合は、上部のメニューで Dashboards を選択し、ダッシュボードのリストから Tutorial dashboard を選択して、ダッシュボードに移動できます。**Edit dashboard** を選択して編集モードに入ります。
Insert components ペイン内で、Markdown ボックスをダッシュボードにドラッグアンドドロップします。ボックスが移動するアンカーを示す青い線を探します。

次に、テキストを編集するには、ボックスを選択します。マークダウン形式でテキストを入力できます(この形式の詳細については、このマークダウンチートシートを参照してください)。ボックスの上部にあるメニューを使用して、Edit と Preview を切り替えることができます。

終了するには、ダッシュボードの他の部分を選択します。最後に、**Save changes** を使用して変更を保存することを忘れないでください。
ダッシュボードの公開
前のセクションで概説したすべての手順に従った場合は、以下のようなダッシュボードが表示されるはずです。必要に応じて、**Edit dashboard** を選択し、ドラッグアンドドロップして、ダッシュボードの要素を再配置できます。
ダッシュボードを他のユーザーが利用できるようにする場合は、左上のダッシュボードのタイトルの横にある Draft を選択して、ダッシュボードを Published 状態に変更するだけです。星を選択して、このダッシュボードをお気に入りに入れることもできます。

アノテーション
アノテーションを使用すると、チャートに追加のコンテキストを追加できます。このセクションでは、前のセクションで作成したチュートリアル折れ線グラフにアノテーションを追加します。具体的には、アイスランドのグリムスヴォトン火山の噴火に対応して、英国の民間航空局がいくつかのフライトをキャンセルした日付(2011年5月23〜25日)を追加します。
まず、[管理]‣[アノテーションレイヤー]に移動して、アノテーションレイヤーを追加します。緑色のプラス記号を選択して新しいレコードを追加し、新しいアノテーションレイヤーを追加します。「火山噴火」という名前を入力して保存します。このレイヤーを使用して、さまざまなアノテーションを参照できます。
次に、[管理]‣[アノテーション]に移動し、緑色のプラス記号を選択して新しいアノテーションを作成します。次に、「火山噴火」レイヤーを選択し、「グリムスヴォトン」という短い説明と、噴火の日付(2011年5月23〜25日)を追加して保存します。

次に、[チャート]に移動し、リストから[チュートリアル折れ線グラフ]を選択して、折れ線グラフに移動します。次に、[アノテーションとレイヤー]セクションに移動し、[アノテーションレイヤーを追加]を選択します。このダイアログ内では、
- レイヤーに「火山噴火」という名前を付けます。
- 「アノテーションレイヤータイプ」を「イベント」に変更します。
- 「アノテーションソース」を「Supersetアノテーション」に設定します。
- 「アノテーションレイヤー」を「火山噴火」として指定します。

[適用]を選択して、アノテーションがチャートに表示されることを確認します。

必要に応じて、[表示]構成セクションの設定を変更して、アノテーションの外観を変更できます。それ以外の場合は、[OK]を選択し、最後に[保存]を選択してチャートを保存します。チャートを上書きするデフォルトの選択を維持すると、アノテーションがチャートに保存され、チュートリアルダッシュボードにも自動的に表示されます。
高度な分析
このセクションでは、Apache Supersetの高度な分析機能について説明します。これにより、データに追加の変換を適用できます。変換のタイプは3つあります。
ベースチャートの設定
このセクションでは、さまざまな高度な分析機能を適用できるベースチャートを設定します。同じtutorial_flightsデータソースと折れ線グラフの視覚化タイプを使用して、新しいチャートを作成することから始めます。[時間]セクション内で、[時間範囲]を2011年10月1日から2011年10月31日に設定します。
次に、クエリセクションで、[メトリクス]をコストの合計に変更します。[クエリの実行]を選択して、チャートを表示します。2011年10月の各月の1日あたりの合計コストが表示されます。

最後に、視覚化を「チュートリアル高度な分析ベース」として保存し、チュートリアルダッシュボードに追加します。
移動平均
データにはかなりの変動があり、トレンドを特定するのが困難になっています。私たちが取れる1つのアプローチは、代わりに時系列の移動平均を示すことです。これを行うには、高度な分析の移動平均サブセクションで、[ローリング]ボックスで[平均]を選択し、[期間]と[最小期間]の両方に7を入力します。期間とは、時間粒度の倍数として表されるローリング期間の長さです。この例では、時間粒度は「日」であるため、ローリング期間は7日であり、2011年10月7日に表示される値は、2011年10月の最初の7日間に対応します。最後に、最小期間を7に指定することで、平均が常に7日間で計算され、ランプアップ期間を回避するようにします。
[クエリの実行]を選択してチャートを表示すると、データが変動しにくくなり、ランプアップ期間が除外されるため、シリーズが遅れて開始されることがわかります。

チャートを「チュートリアル移動平均」として保存し、チュートリアルダッシュボードに追加します。
時間比較
このセクションでは、時系列の値と1週間前の値を比較します。最初に、上部メニューの[チャート]に移動し、リスト内の視覚化の名前を選択して、「チュートリアル高度な分析ベース」チャートを開きます(または、チュートリアルダッシュボードでチャートを見つけ、その視覚化のメニューから[チャートの探索]を選択します)。
次に、高度な分析の[時間比較]サブセクションで、「マイナス1週間」と入力して[時間シフト]を入力します(このボックスは自然言語での入力を受け付けます)。[クエリの実行]を実行して、新しいチャートを表示します。チャートには、同じ値で、1週間前にシフトされた追加のシリーズが含まれています。

次に、[計算タイプ]を[絶対差]に変更し、[クエリの実行]を選択します。これで、以前に表示された2つのシリーズ間の差を示す1つのシリーズのみが表示されるようになりました。

チャートを「チュートリアル時間比較」として保存し、チュートリアルダッシュボードに追加します。
データの再サンプリング
このセクションでは、毎日のデータではなく、毎週のデータが表示されるようにデータを再サンプリングします。前のセクションと同様に、「チュートリアル高度な分析ベース」チャートを再度開きます。
次に、高度な分析の[Python関数]サブセクションで、[ルール]に7Dと入力し(7日間に対応)、[方法]に[中央値]と入力して、[クエリの実行]を選択してチャートを表示します。

これで、7日ごとに1つのデータポイントが表示されるようになりました。この場合、表示される値は、7つの毎日のデータポイント内の中央値に対応します。このセクションのさまざまなオプションの意味の詳細については、Pandasのドキュメントを参照してください。
最後に、チャートを「チュートリアル再サンプリング」として保存し、チュートリアルダッシュボードに追加します。チュートリアルダッシュボードに移動して、4つのチャートを並べて表示し、さまざまな出力を比較します。