inFablic | Fablic, inc. Developer's Blog.

フリマアプリ フリル (FRIL) を運営する Fablic の公式開発者ブログです。Fablic のデザイナー・エンジニア・ディレクターが情報発信していきます。

RedashでCSVファイルのやり取りがある分析業務を改善する(Google SpreadSheet DataSource)

こんにちは、shobyです。

皆さんはCSVファイルでユーザーリストを渡され、「リストに含まれるユーザーのデータを分析して欲しい」と頼まれたことはありませんか?

このようなCSVファイルを用いたデータのやり取りは、社外との連携などにおいて発生することが多く、異なるユーザーリストに対して同様の分析が定期的に依頼される傾向があります。

今回は、このような定期分析業務をRedashのGoogle SpreadSheet DataSourceを用いて効率化する方法をご紹介します。

これにより、エンジニアが関わらなくても、マーケターやディレクターがCSVをGoogle SpreadSheetにコピー&ペーストするだけで分析が行えるようになります。

RedashのGoogle SpreadSheet DataSource

RedashのGoogle SpreadSheet DataSourceとは、データの入力ソースとして、Google SpreadSheetを使うことのできる機能です。 Google SpreadSheetのデータをテーブルとして読み込み、可視化を行うことができます。

この機能を活用することでSpreadSheetに読み込んだユーザーリストのデータを、MySQLなどの分析用DBと組み合わせて分析することができるようになります。

利用にはセットアップが必要ですが、セットアップ方法に関しては分かりやすい記事があったため紹介します。こちらをご参照ください。

qiita.com

Python DataSourceでGoogle SpreadSheetとMySQLを組み合わせる

Python DataSourceを用いることで、Google SpreadSheetとMySQLなど、複数のDataSourceを組み合わせた分析を行うことができます。

Google SpreadSheet DataSource単体では、可視化しか行えないため、Python DataSourceを用いて、他のDataSourceと組み合わせる必要があります。

Python DataSourceの詳細とセットアップ方法に関しては、以下の記事をご参照ください。

in.fablic.co.jp

実際にGoogle SpreadSheetとMySQLを組み合わせるのは以下のようなクエリになります。

import pandas as pd

# 異なるDataSourceに対してクエリを実行
spread_sheet_query = 'abcdefg|0' # スプレッドシートキーとシート番号を `|` で繋ぐ
mysql_query = 'SELECT ...'

spread_sheet_result = execute_query('SpreadSheet', spread_sheet_query)
mysql_query_result = execute_query('MySQL', mysql_query)

spread_sheet_data = pd.DataFrame(spread_sheet_result['rows'])
mysql_data = pd.DataFrame(mysql_query_result['rows'])

# pandasを使ってjoin
merged_result = pd.merge(spread_sheet_data, mysql_data, on='user_id')

# 結果の出力
result = {}

for index, row in merged_result.iterrows():
    add_result_row(result, {'user_id': row['user_id'], 'user_info': row['user_info']})

add_result_column(result, 'user_id', '', 'integer')
add_result_column(result, 'user_info', '', 'string')

フリルでの活用事例

フリルでは現在、Google SpreadSheet DataSourceを用いて、マーケターの抱える分析業務の効率化を行なっています。

フリルでは分析環境が整うことにより、マーケターやディレクターもSQLを書き、施策立案から分析までを単独で行える組織に成長してきましたが、マーケターが分析業務に多くの時間が割かれるという問題も発生してきました。

そのため、Google SpreadSheet DataSourceを用いて、マーケティング施策の分析を効率化している最中です。

まとめ

ユーザーリストをCSVで渡され、定期的に分析を依頼されるような業務の場合、Google SpreadSheet DataSourceを用いることで、効率化をすることができます。

CSVのユーザーリストをSpreadSheetにコピー&ペーストするだけで、必要な分析を行うことができます。

この方式はマーケターにも優しい方法であり、マーケターの抱える業務を効率化することができます。