業務上でElasticSearchというテキストやログなどのデータの中から高速かつ正確に検索を行える
オーブンソースの検索エンジンが使われていたので調べてみました。
Kibanaを組み合わせてデータを可視化したり、分析したりできるクライアントアプリを作成できることが可能です。
Kibanaは有料でしたので(無料トライアウトあり)、無料で使えるものを探していたところMetabaseというサービスがあったので、今回はPythonとElasticSearchとMetabaseでデータを探索したり分析、可視化できるツールの設計を考えてみます。
・Metabaseについて
https://www.metabase.com/
(https://www.metabase.com/docs/latest/ より引用)
・Kibanaについて
https://www.elastic.co/jp/kibana/
概要
ElasticSearchでデータをインデックスし、Pythonを使用してデータをクエリして抽出し、
抽出したデータをPandasのDataFrameに変換し、Metabaseにデータをエクスポートして可視化する
設計
Elasticsearchのセットアップ
Elasticsearchをローカル環境にインストールします
Elasticsearchへのデータの投入
Pythonを使用して、Elasticsearchにデータを投入します。
CSVファイルからデータを読み込み、Elasticsearchにデータを保存するスクリプトを作成します。Pythonのライブラリであるelasticsearch-pyを使用して、Elasticsearchにデータを投入します。
Metabaseのセットアップ
Metabaseをローカル環境にインストールします。
Metabaseの設定画面から、Elasticsearchに接続するための設定を行います。
Metabaseでのデータの可視化
Metabaseにログインし、Elasticsearchから取り込んだデータを使用して、グラフやダッシュボードを作成します。
PythonとMetabaseの連携
Pythonを使用して、MetabaseのAPIを呼び出し、データの取得やダッシュボードの作成を自動化することができます。
Pythonのライブラリであるmetabase-apiを使用すると、MetabaseのAPIを簡単に呼び出すことができます。
以上です。
データ分析に興味のあるエンジニアやデータサイエンティストやビジネスサイドの方の参考になると幸いです。
今後は実際にコードを書いていきます。
補足
インプットとなるデータはKaggleやe-Statなどのオーブンデータサイトからデータをダウンロードしてくると手軽に使えます
・e-Stat
https://www.e-stat.go.jp/