Reckonerはクラウド型のノーコードで作成できるETLツールです。あらゆるデータソースからデータを抽出し、簡単な操作でデータを加工することのできます。従来はETLの名称のようにデータを抽出→加工→登録の流れを主流としていましたが、現代ではELTと呼ばれ、いったんデータベースに登録をした後に加工をする方式が流行です。
今回はSQLを活用しながらReckonerでDr.Sum Cloudに入っているデータを抽出し、加工してからDr.Sum Cloudの別のテーブルに入力してみます。
事前準備
データの加工の前にReckonerとDr.Sumの接続をしている必要があります。ReckonerとDr.Sumの接続についてはこちらの記事を参照してください。
データを加工するワークフローを作ってみる
ではさっそくReckonerでDr.Sumのデータを加工してみましょう。
前提の説明
今回はDr.Sumの中にある[売上データ]テーブルを加工して、[売上データ_加工]テーブルにデータ登録をしてみます。
[売上データ_加工]テーブルは以下のSQLで作成できます。
CREATE TABLE 売上データ_加工 (
TransactionID VARCHAR NOT NULL UNIQUE,
Date_ VARCHAR,
Company VARCHAR,
Product VARCHAR,
Region VARCHAR,
Quantity NUMERIC(18,0),
UnitPrice NUMERIC,
TotalSales NUMERIC,
Company_Length NUMERIC(18,0),
amount NUMERIC(18,0),
Region_Padding VARCHAR);
[売上データ]テーブルは[TransactionID]から[TotalSales]までの情報を保持しています。
今回は3つの加工処理を試してみます。
Length処理
[Company]カラムに入っている情報からデータ文字数を取得します。取得したデータを[Company_Length]カラムに登録します。
四則演算処理
[売上データ]テーブル[Quantity]に商品の数量が、[UnitPrice]に商品の単価が入っています。すでに[TotalSales]には合計金額が入っていますが、Reckonerの四則演算処理を使って計算をして、[amount]カラムに登録します。
文字埋め(Padding)処理
文字埋めとは文字列の前後に特定の文字や空白を追加する処理です。例えば5とか30とか入っているデータを005や030の様に3桁にして頭に0を埋めるときなどに使います。
今回は[Region]を6桁にして、頭にxを入れる処理をして、[Region_Padding]に登録をします。
upsert処理
今回はDr.Sumにデータを登録するときに[upsert]を使います。ReckonerではDr.Sumにデータを登録する際に[insert]と[upsert]が選択できます。[insert]はデータをどんどん投入する仕組みですが、[upsert]はupdateとinsertを行うので、キーで更新、キーがなければ登録をします。
今回の例で言うと[売上データ_加工]テーブルは[TransactionID]をNOT NULL UNIQUE(主キー)としているので、[TransactionID]をキーとして、データ登録を行います。
ソースからDr.Sumを指定する
ワークフローの左側にある[ソース]の一覧からDr.Sumを選択し、ドラッグ&ドロップします。するとDr.Sumの接続画面が表示されます。
接続情報:接続設定で作成した[接続情報名]を選択
データベース:Dr.Sumのデータベースを指定、ここでは[ウイングモール]と記載
クエリ:抽出したいテーブルのSELECT文を記載ここでは「select * from 売上データ」としている
入力が終われば、[プレビュー]を実施、正常に行くと上図のように入力データと出力データに[売上データ]テーブルの情報が表示されます。
Lengthの設定
続いて、データ文字数を返すLength処理を追加します。[分析]から[長さ(Length)]を選択し、フィールドに置きます。また[Dr.Sum]から[長さ(Length)]にリンクを結びましょう。
[長さ(Length)]の設定を加えていきます。
入力フィールド:Company
出力フィールド:Company_Length
入力フィールドは[売上データ]テーブルの[Company]カラムを指定、出力フィールドは[売上データ_加工]テーブルの[Company_Length]カラムにデータを登録したいので Company_Length を入力します。
[長さ(Length)]の設定は以上です。
四則演算処理の設定
同じように[四則演算]を追加します。
先ほどと同じように[四則演算]をドラッグ&ドロップして、今度は[長さ(Length)]と[四則演算]をリンクで結びましょう。
[四則演算]の設定に入ります。
ここで指定したいことは
Quantity * UnitPrice = amount
の式を完成させることです。
第一項 入力方式:フィールド名
第一項 入力フィールド名:Quantity
演算子:*
第二項 入力方式:フィールド名
第二項 入力フィールド名:UnitPrice
そして画面から見切れていますが、
出力フィールド名:amount
を指定して、[プレビュー]を実施します。
[四則演算]の設定は以上です。
文字埋め(Padding)処理の設定
それでは3つ目の加工処理である[文字埋め(Padding)]を行います。例によって[分析]から[文字埋め(Padding)]をドラッグ&ドロップして、[四則演算]と[文字埋め(Padding)]のリンクを結びます。
[文字埋め(Padding)]の設定をします。
入力フィールド:Region
関数:LPAD(左詰め)
長さ(Length):6
パターン:x
出力フィールド名:Region_Padding
[Region]にはWestやSouthなどのデータが入っています。これらを文字埋めすることで、xxWest、xSouthのようになるわけですね。
Dr.Sumに登録(upsert)する
いよいよ加工したデータをDr.Sumの[売上データ_加工]テーブルに登録する処理です。[シンク]から[Dr.Sum]をドラッグ&ドロップして、[文字埋め(Padding)]とリンクを結びます。
それでは書き込むDr.Sumの設定をします。
接続情報:接続設定で作成した[接続情報名]を選択
データベース:ウイングモール
テーブル:売上データ_加工
書き込みモード:upsert
キーとなる項目:TransactionID
こちらで設定はOKです、[プレビュー]をクリックしてエラーにならないか確認しましょう。
動作確認してみる
それでは動作確認をしてみましょう。
[シンク]のラジオボタンをONにして、[プレビュー]を実施します。しばらく待つと[プレビュー]が終わりますので、データを確認します。
Dr.Sumの[売上データ_加工]テーブルを開いてみると、データが登録されていました。そして[売上データ]テーブルには存在しない情報である、赤枠の3つのカラムも問題なくデータが入っていることがわかります。
Reckoner内で加工したデータをDr.Sumに登録することができました。
さいごに
今回の加工をした内容はSQLを知っている人ならばDr.Sumの中で完結できる処理でした。しかしSQLに詳しくない方であれば、Reckonerのわかりやすい画面で加工処理をすることにメリットがあると感じます。
非エンジニアの方でデータ加工に課題を感じている方がいらっしゃれば、Reckonerを検討してみることも良いかと思います。