GCPUG-FUKUOKA データ加工&可視化ハンズオン

75
Google Cloud Dataprep Google Data Studio 2017/11/11 Wasaburo Miyata データ加工&可視化ハンズオン

Transcript of GCPUG-FUKUOKA データ加工&可視化ハンズオン

Google Cloud DataprepGoogle Data Studio

2017/11/11

Wasaburo Miyata

データ加工&可視化ハンズオン

2

宮田 和三郎(Wasaburo Miyata)

好きなサービス:BigQuery

所属:嘉穂無線ホールディングス/データ活用

所属:カホエンタープライズ/CTO

3

■Agenda1. ハンズオン説明

○ 使用データ/作成ダッシュボード

○ アーキテクチャ

2. Google Cloud Dataprep(ベータ版)

○ 概要/初期設定

○ ハンズオン①(基本操作)

○ ハンズオン②(データ編集)

○ ハンズオン③(データ出力)

3. Google Data Studio(ベータ版)

○ 概要

○ ハンズオン

※11/11時点で公開ベータ版のサービスです。GAの際には操作方法など変更となっている可能性があります。

4

ハンズオン説明

5

福岡市の大気環境測定結果(直近48時間)

# 項目

1 年月日

2 測定局名称

3 測定項目

4 緯度

5 経度

6 単位

7 測定値(1時)

~ ~

30 測定値(24時)

福岡市内16箇所の直近48時間の大気環境測定データ(1時間毎に更新)です。なお、値は未確定なので後日修正されることがあります。

https://ckan.open-governmentdata.org/dataset/atmospheric48

使用データ

6

作成ダッシュボード

7

アーキテクチャ

Data Studio

Cloud Dataprep

Cloud Shell

Cloud Storage

Cloud Storage

オープンデータ

CSV

文字コード変換 データ編集 可視化レポート共有

https://datasut・・

8

Google Cloud Dataprep

9

データ加工(前処理)どのように行ってますか?

10

● エディタの機能で置換、コピペ、マクロ● Excelでピボットテーブル、関数

● プログラムで一行ずつ処理● sed,awk,grepを駆使● RやPythonでデータフレームに突っ込んで処理

● 分散DB(DWH)に突っ込んでSQL● Hadoop

定型化したい

スケールしたい

エンジニア必要

Cloud Dataprep

データ編集いろいろ

11

Dataprep概要

1. コード不要でデータ準備、クレンジングが可能

2. 自動でデータ型を予測、欠損値、外れ値を検出

3. Trifacta(https://www.trifacta.com/)をGCP上で実装

4. サーバーレス&自動スケール(裏でCloud Dataflowが起動)

5. 現時点でShift_JIS未対応(UTF-8が無難)

https://www.trifacta.com/support/articles/topics/139873-transforms

https://cloud.google.com/dataprep/docs/

※11/11時点(公開ベータ版)GAの際には変更となっている可能性があります。

12

料金

Dataprep自体の使用は課金されないが、Dataprep内

で使用される下記に課金される。

● Google Cloud Dataflow: Cloud Dataprep ジョブは Cloud Dataflow

ジョブとして実行され、Cloud Dataflow の料金体系に従って課金

● ストレージ リソース: Google Cloud Storage に保存されたデータ

は、Cloud Storage の料金体系に従って課金

13

処理イメージ

1. 入力データ準備

2. 編集処理(フロー)作成

3. ファイル出力(ジョブ実行)

14

入力と出力

1. BigQuery

2. Excel

3. CSV

4. JSON

5. PLAIN TEXT

6. LOG

7. TSV

8. Avro

https://cloud.google.com/dataprep/docs/html/Supported-File-Formats_57344528

Input Output

1. BigQuery

2. CSV

3. JSON

4. Avro

15

Dataprepハンズオン

16

https://cloud.google.com/dataprep/docs/quickstarts/quickstart-dataprep

1. アカウント作成

2. GCPプロジェクトを作成

3. プロジェクト課金設定

4. API有効化

a. Cloud Dataflow

b. BigQuery

c. Cloud Storage

プロジェクト設定

17

1. Google Cloud Shell 起動

2. ファイル準備

a. データダウンロード

b. UTF-8変換

c. GCSへアップロード

https://github.com/wamiya/dataprep-handson/blob/master/uplaodgcs.txt

クリック

Shellのが画面が起動される

データ設置

初回設定

18

19

ハンズオン①(基本操作)

1. 入力データ設定

2. データ参照(サンプリングデータ設定)

3. データ編集(Suggestionを利用)

4. レシピ操作

5. ジョブ実行(データ出力)

6. データソースプロファイル

Inputデータ設定

20

①DATASETS

②Import Data

③GCS

④プロジェクト名-dataprep

⑤+⑥import

⑦Wrangle in new Flow

データ確認

21

様々な条件データを絞り込んで実データを確認Random,FirstRows,Filter-based,Anomaly-basedStratified,Cluster-based

取得したサンプルのデータセットを選択

異常値/欠損値を見つけて、除外/置換する

22

②異常値(数字以外)を検出

①自動で整数型と判定

③対象データのハイライト

④選択したデータに対して除外や置換などの処理が提案される

⑤提案された内容を選択し、Addする事で処理実行される。

レシピ確認/操作

23

①アイコンクリック

②ここのレシピ(データ編集に内容)が表示される。

ジョブ実行(出力)

24

①クリック

②データプロファイルを見る場合は、チェック

③実行

ジョブ実行(出力)

25

①クリック

②Dataflowが実行

③処理完了後、結果が表示

26

データソースプロファイル

ファイル全体の情報各データのヒストグラムや基本統計量、最頻値等を表示

27

ハンズオン②(データ編集)

1. 時間列データ縦持ち

2. 欠損値置換

3. 時間列設定

3.1. 置換(column_ ⇒ “”)

3.2. 置換(24 ⇒ 0)

4. 日付時刻列作成

4.1. 翌日列作成

4.2. 日付置換(24時は翌日へ)

4.3. 日付時刻列作成

4.4. 日付時刻列書式設定

5. 不要列の削除

6. 列名変換

28

ハンズオン②(データ編集)

年月日 測定局 測定項目 緯度 経度 単位 値(1時) ~ 値(24時)

20171101 香椎 一酸化窒素 33.6723 130.437 ppd 8 ー 12

[編集前]

年月日-時間 測定局 測定項目 単位 値

2017-11-01 01:00:00 香椎 一酸化窒素 ppd 8

2017-11-01 02:00:00 香椎 一酸化窒素 ppd 10

・・・・・ ・・ ・・ ・・・ ・・・・

2017-11-01 23:00:00 香椎 一酸化窒素 ppd 7

2017-11-02 00:00:00 香椎 一酸化窒素 ppd 12

[編集後]

29

時間列データ縦持ち

①Columnsクリック

②縦持ちにしたいカラムを全て選択(column1~Column24)※Windowsの場合Shiftを押しながら最初の列と最後の列を選択

③Action↓Restructure↓Unpivot

30

④Add

時間列データ縦持ち

31

欠損値置換

①赤い部分(mismatched)をクリック

②「mismatched values to NULL」をクリック

③Add

32

時間列設定(文字列”column_”を削除)

①”column_”という文字列を選択

②「’column’ with ‘’ in key」を選択

③Add

33

時間列設定(24を0に置換)

①”column_”という文字列を選択

②「’24’ with ‘’ in key」を選択

③edit

34

時間列設定(24を0に置換)

④New valueに0を設定

⑤Add

35

翌日列作成

①derive

②DATEADD(column,1,day)

③nextday

④Add

36

日付置換(24時は翌日へ)

①set

②column

③IF(key==0,nextday, column)

④Add

37

日付時刻列作成

①set

②column

④Add

③DATETIME(year(column),month(column),day(column),key,0,0)

38

日付時刻列の書式設定

①column横のメニューよりFormat⇒Change format

②dateformat($col, 'yyyy-MM-dd HH:mm:ss')

③Add

39

不要列の削除

①Columns

②削除対象の列選択・nextday・column3・column4・key

③Action

③Drop

40

列名変更①列横のメニューよりrename

②新しい名前を入れる

③Add

下記の通り名前を設定する。

列名 新しい列名

column date_time

column1 kyoku

column2 koumoku

column5 tani

value value

41

ハンズオン③(データ出力)

1. ジョブ設定

2. ジョブ実行

42

ジョブ設定

①edit

43

ジョブ設定

②・・・

③GCS

④プロジェクト-dataprep

44

ジョブ設定

⑤Create new file

45

出力ジョブ設定

⑥kankyo-out

⑦チェック

⑧Save Settings

46

出力ジョブ実行

⑨Run job

47

出力ジョブ実行

GCS上にファイルが作成されている事を確認

48

Google Cloud DataStudio

49

■概要

1. 無料のダッシュボード/レポート作成ツール

2. 様々なデータソースを使用する事が可能

a. BigQuery/Cloud SQL

b. Goolge アナリティクス

c. Google スプレッドシート・・・・などなど

3. データの変換・計算式が可能

4. リアルタイムでの共有、共同編集が可能

https://cloud.google.com/data-studio/?hl=ja

50

ハンズオン

1. データソース

1.1. データソース接続

1.2. データソース編集

2. レポート作成

2.1. タイトル

2.2. フィルタ

2.3. 円グラフ

2.4. 期間

2.5. ピボットテーブル

2.6. レイアウト/テーマ

3. 実行と共有

3.1. レポート名変更と実行

3.2. レポート共有

51

https://datastudio.google.com/?hl=ja

データソース接続

52

データソース接続

53

データソース接続(初回のみ)

54

データソース接続(初回のみ)

55

データソース接続(初回のみ)

56

データソース接続(初回のみ)

57

データソース接続(初回のみ)

58

データソース接続

①出力したファイルを指定[プロジェクト]-dataprep/kankyo-out.csv

②接続

59

日付時刻タイプ設定

①日付時(YYYYMMDDHH)

60

日付フィールド作成

①複製

61

日付フィールド作成

①日付(YYYYMMDD)

62

値フィールド設定

①数値

63

値フィールド設定

①平均値

64

名称の変更

①kankyodata

②date_time ⇒ 日付時刻date_timeのコピー ⇒ 日付tani ⇒ 単位value ⇒ 値kyoku ⇒ 測定局koumoku ⇒ 測定項目

③レポートの作成

65

レポート作成

①レポートに追加

66

レポート作成(タイトル)

①テキストを選択

②配置してタイトルを記載③フォントなどはここで設定

67

レポート作成(フィルタ)

①フィルタオプションを選択

②フィルタの配置

③ディメンションを「測定項目」に変更

68

レポート作成(フィルタ)

④スタイル設定☑エキスバンド☑単一選択□検索ボックスを有効にする□数値の短縮表示

69

レポート作成(円グラフ)

①円グラフを選択

②円グラフを配置

③ディメンションを測定局に変更

70

レポート作成(期間)

①期間を選択

②期間を配置

③時間ディメンションを日付時刻に変更

④内訳ディメンションに測定局を追加

71

レポート作成(ピボットテーブル)

①ピボットテーブルを選択

②ピボットテーブルを配置

④列のディメンションに測定局を設定

③行のディメンションに日付を設定

⑤合計☑行の総計を表示する☑列の総計を表示する

⑥並び替え行の並び替えを日付の昇順とする。

72

レポート作成(レイアウト/テーマ)

①ここで書式を好きなように設定する。

73

レポート名称変更と実行

①レポート名を変更 ②ビュー

74

レポート共有①このレポートを共有

②共有設定を行い「完了」

75

色んなデータで遊んでみよう。

ありがとうございました。