ブログ

Blog

絞り込んで表示する

2020.7.01 - 

ExcelのファイルをMAGELLAN BLOCKSを利用してBigQueryに取り込む

Excelではもう限界

様々なビジネスの場面で利用されている表計算ソフトの「Microsoft Excel」(以下 Excel)。

データ集計にはとても便利であるものの、様々なシステムから抜き出してきたデータを過去のものからすべて入れて保存しているという実情があるのではないでしょうか?
そのうち処理が重くなってしまって、作業に非常に多くの時間がかかってしまう。それだけでなく、Accessに入れて集計したものを再度Excelで利用したり。しかも、そのファイルが壊れてしまうと復旧出来なかったり、最悪の場合は業務が止まってしまうということもあるでしょう。

そんな状態から開放されたい!という方に向け、この記事ではグルーヴノーツ コンサルタントの中村から、クラウドを利用してデータの扱いを簡単にしてしまう方法をご紹介したいと思います。




ExcelのデータをMAGELLAN BLOCKSを利用してBigQueryに取り込む

BigQueryとはGoogle Cloudが提供するデータウェアハウスです。SaaS型で、サーバーの準備やメンテナンスなどは必要なく、利用した分だけ課金されるという非常に便利なサービスです。ここにExcelのデータを取り込んでいきたいと思います。

今回はこんなExcelのデータでやっていきます。



1.ExcelをCSV形式で保存

Excelのファイルをそのまま取り込むことは残念ながら出来ません。しかし、Excelの「名前を付けて保存」から、ファイル形式を「CSV」で保存するとスムーズに取り込むことが可能です。

メニューの "ファイル" から "名前を付けて保存" を選びます。


ファイル形式を "CSV(コンマ区切り)(.csv)" を選んで保存をクリック。





2.GCS Explorerでファイルをクラウドに保存する

GCSとは、Google Cloud Storageの略でクラウド上にファイルなどを保存する場所です。ここから、MAGELLAN BLOCKSを利用します。

MAGELLAN BLOCKSの機能にある「GCS Explorer」を使って、さきほど作成したCSVファイルをGCSにアップロードします。この際、GCS上にバケット(フォルダのようなもの)を作成しますが、バケット名称は一意にする必要があります。

MAGELLAN BLOCKSのメニューから "GCS Explorer" をクリックし、一覧画面に遷移します。


画面が遷移したら右上の "新しいバケット" をクリック。


バケット名を入力(一意にする必要あり)して、 "作成" をクリック。


作成したバケットに移動するため、MAGELLAN BLCOKSの画面右上のフォルダのマークをクリックして "ファイルアップロード" を選択します。


「1.ExcelをCSV形式で保存」で作成したCSVファイルを選んで、 "開く" をクリック。


ファイル一覧に表示されればOKです。この際、ファイルの場所をコンピュータに記憶させるため、このファイルの右側にある縦の3点リーダー "︙" をクリックして "GCS URLをコピー" を選択します。





3.フローデザイナーでファイル取り込みフローの作成

MAGELLAN BLOCKSの「フローデザイナー」という機能で、先ほど保存したファイルを取り込むフローを作成します。
(ちなみに、フローデザイナーとは、ブロックを組み合わせるだけで、様々な処理フローを簡単に作成できるサービスですね。)

ここで、ファイルの文字コード変換の処理をします。Excelは 「Shift-JIS」 という日本語の文字コードが使われています。BigQueryでは、文字コード UTF-8 を使用しているため、そのまま取り込むと文字化けを起こしてしまいます。そのため、ファイルをShift-JISからUTF-8に変換して取り込みを行います。

MAGELLAN BLOCKSのメニューから "フローデザイナー" をクリックし、一覧画面に遷移します。


画面が遷移したら、 "利用開始" をクリックします。(すでにフローデザイナーをご利用中の方は、次の画面はスキップします。)


"名前" を入力して、 "作成" をクリック。


一覧画面で作成されたものが表示されます。表示された名前をクリックして、フローデザイナーの作成画面に遷移します(別のタブで開きます)。


最初に、画面左の "基本" から "フローの開始" のブロックをドラッグ&ドロップで配置します。


左メニューの "GCP" をクリックし、 "シフトJISからUTF-8へ変換" のブロックを選んで、 "フローの開始" のブロックに重ねます。
(片方のブロックがハイライト表示されるようにブロックとブロックを重ねると、ブロックをつなぐことができます。)



設置した "シフトJISからUTF-8へ変換" のブロックをダブルクリックして、右側に表示された設定画面の項目に以下を入力します。

  • 「変換前のGCS URL」項目に、上記2.の工程の最後にコピーした "GCS URL" を貼り付ける。

  • 「変換後のGCS URL」項目に、前述の "GCS URL" を貼り付けた後、ファイル名の最後に 『-utf8』 を入れる。そして、次の工程で使用するため、当該URLをコピーしておく。

左メニューの "BigQuery" をクリックし、 同じように "GCSから単一テーブルへロード" のブロックを "シフトJISからUTF-8へ変換" のブロックに重ねてつなぎます。


設定画面の項目に以下を入れます。

  • 「投入データのファイルGCS URL」項目に、先ほどコピーした変換後の "GCS URL" を貼り付ける。
  • 「投入先のデータセット」項目に、BigQueryの任意の "データセット名" を入力する(指定したいデータセットがなければ、自動で新規作成されます)。
  • 「投入先のテーブル」項目に、BigQueryの任意の "テーブル名" を入力する。(指定したいテーブルがなければ、自動で新規作成されます)
  • 「スキーマ設定をデータから自動生成する」項目に、 "チェック" を入れる。

さらに、 "詳細設定" のタブメニューをクリックし、下にスクロールして以下の項目を変更します。

  • 「読み飛ばし行数」項目に、 『1』 を入力する。これでExcelのヘッダー行を除いた取り込みができます。

左メニューの "基本" をクリックし、 "フローの終了" のブロックを "GCSから単一テーブルへロード" のブロックに重ねます。


最後に、MAGELLAN BLOCKS画面右上の "保存" を押して作成したフローを保存します。





4.取り込みを行ってみる

では、出来上がったフローを実行してみましょう。

"フローの開始"ブロックの右端にある縦の3点リーダー "︙" をクリックし、表示されたメニューから "フローの実行" をクリック。


MAGELLAN BLOCKSの画面右下ほどにある "^" をクリックして、実行状況を確認します。ステータスで 『成功』 と出れば取り込みが完了しています。





5.データを確認する

MAGELLAN BLOCKSのサポートツール「BigQuery Viewer」を使って、対象ファイルのデータが取り込みされているかを確認します。

フローデザイナーのタブを閉じて元のタブに戻り、MAGELLAN BLOCKSのメニューから "BigQuery Viewer" をクリックし、BigQuery Viewerの画面に遷移します。


"スキーマ" のタブページにあるプルダウンから、ここまででフローデザイナーで設定した データセット名 (設定画面「投入先のデータセット」項目で入力された名称)を選択します。


フローデザイナーで設定したテーブル情報が出てくるので、 "クエリーをセット" をクリックします。


"クエリ実行" のタブページに遷移するので、そこから "クエリを実行" をクリックすると、取り込まれたデータが表示されます。





最後に

いかがでしょうか? Excelで作成したCSVのファイルをGCSに保存するだけで取り込みを行うことが出来ますね。

今回は各列の名前が『_____』となってしまいました。これはExcelのデータが日本語で列の名前を入れていたからです。英語で入れておけば、きちんと反映してくれます。

(し、し、失敗じゃないですよ!わざとですよ!)

ここからMAGELLAN BLOCKSの「DataEditor」機能やBIツールなどを利用し簡単に可視化して、みんなで情報を共有することも可能です。(そのあたりはまたどこかで解説したいと思います。)

小さなデータでも、大きなデータでも簡単に取り込んでデータとお友達になってください!

では!