プレスリリースやお知らせ、開発ブログ、会社の活動状況、Mattermost・aws・AI等の技術情報などを発信しています。

【初心者向け】Dataikuで郵便番号データをクリーンアップ&PostgreSQLに登録する方法

アドベントカレンダー専門テックブロガーのthorikiです。

現在弊社では目標である「企業ドクター」を目指して邁進中です。
その中でも中核を担うAIやデータ利活用には会社を挙げて注力をしております。

今回は、Dataikuを使って郵便番号のCSVデータを加工し、必要なデータの削除や追加を行った後、データベース(PostgreSQL)に登録する手順をご紹介します。

前提条件

以下の準備が整っていることを確認してください:

  1. バージョン確認
    PostgreSQLとDataikuの互換性を確認(公式ドキュメントはこちら)。
  2. PostgreSQLのインストール
    PostgreSQLがインストールされていること(参考:インストール方法)。
  3. Dataiku DSSのインストール
    Dataiku DSSをローカル環境にインストールしておく。(参考:インストール方法)

今回Dataikuでやりたいこと

郵便番号CSVをダウンロードし、Dataikuで以下の作業を行います:

  • 不要な列を削除
  • 必要に応じて列の追加やデータの変換
  • 加工したデータをデータベースに投入

準備

  • 郵便番号リストのダウンロード。
    • 対象のCSVファイルはこちらにあります。ローカルにダウンロードしておいてください。
  • PostgreSQLをローカル環境で起動しておきます。
    • 接続に使うユーザ/ロールはあらかじめ準備しておいてください。またテーブルを作成する権限も使用するユーザ/ロールにつけておいてください。

手順

1. DataikuにPostgresqlのConnectionを登録する

DataikuDSSの上部のナビゲーション バーの[Application]メニューから、 [Administration] を選択します。

上部のタブからConnectionを選択します。

NEW CONNECTIONからPostgreSQLを選択します。

postgresqlの接続設定画面が開きます。必要なパラメータを設定しています。

※下の画像ではローカルのPostgresqlのスキーマdataiudbにつなぐ設定にしています。

設定項目の入力が完了したら、下部にあるTESTボタンをクリックしてみてください。

接続がうまくいけばConnection OKと返ってきます。

これでPostgreSQLのConnectionの設定は終了です。

2. DataikuにCSVを読み込ませてDatasetを作成

プロジェクトがないためまずはプロジェクトを作成します。

Dataiku DSSのホーム画面からNEW PROJECTBlank Projectを選択します。

プロジェクトに名前をつけます。今回はDB__CONNECTにしています。

IMPORT YOUR FIRST DATASETを選択します。

次の画面ではUpload your Filesを選択します。

ダウンロードしてきた郵便番号.csvファイルを選択するか、ドロップしてください。

成功すると以下の画面になるので、Datasetの名前をつけてCreateボタンをクリックしてください。

フロー画面を表示するとDatasetが表示されています。

クリックして開いてみましょう。csvファイルが取り込まれていることがわかります。

3. Prepareレシピの設定

作成されたDatasetを選択された状態にし、VisualRecipesからPrepareを選択します。

PostgresqlのConnectionを設定していると、Output datasetのStore intoに設定したConnectionが表示されるので、それを選択しCreate Recipeをクリックします。

4. データの加工

DBに取り込む前に不要な列と加工を行います。

郵便番号と都道府県、自治体名、町域名以外不要なので削除しています。

同時にカラム名がcol_1とかになっていたので、Renameしております。

また、列の順番も入れ替えております。

(この辺りは全て、表を操作しながら加工することが可能です)

郵便番号が一意ではないため、一意となる列(zip_code_id)も付け加えております。

こちらはformulaからUUID関数を呼び出すことで列に追加しています。

5. 準備レシピの実行/確認

加工が処理の設定が終わったらRUNボタンを押します。

問題なければ成功したという表示が出ます。

フロー画面に戻るとDatasetが増えていることがわかります。

新しくできたDatasetを開いてみましょう。

期待したデータになっていることがわかります。

6. DBの確認

Postgresqlに反映されているか確認します。

プロジェクト名+Dataset名で作成されています。

(このあたりは接続設定をいじれば調整できます)

データも確認してみます。

同じものが入っていそうですね。

以上がDataikuで郵便番号データをクリーンアップ&PostgreSQLに登録する方法でした。

おまけ

DB取り込み時にPKを設定する方法

DB取り込み時には制約などはつきません。またStringの場合Textでカラムの型が定義されるようです。

そこらへんを調整したい場合は、Prepare Recipeを実行して作成されたDatasetの設定を変えれば変更可能です。

作成されたDatasetを開き、上部のタブからSettingを選択。

開いた画面の上部にさらにタブがあるので、Advanceを選択してください。

Table creation modeをManually defineにすると、Table creation SQLが有効となるので、そこで定義を変更してください。

  • B!

おすすめ記事リンク