9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Databricks経由Machine Learningの旅 第一話 -kaggleのデータをTROCCO®で準備する-

Last updated at Posted at 2024-08-12

はじめに

ETLツールであるTROCCO®の転送先として、Databricksが2024年6月に追加されました。

スクリーンショット 2024-08-11 17.17.26(2).png

自社製品がDatabricksに対応したと聞き、近いうちに触りたいと思ってました。
元々の興味・関心がデータサイエンスや機械学習にあったため、存在自体は以前から認知していました。
加えて、現職で日々扱っているデータエンジニア面の機能も整備されており、今後積極的に使っていきたいプラットフォームの1つでもありました。

自分の勉強もかねて、これから何回かにわたり、機械学習と絡めてDatabricksの機能を記事にしていきたいと思います。
記念すべき第1回は、㊗️転送先Databricksとして「TROCCO®を活用してkaggleのデータを準備する手順」について紹介していきます。

対象の読者

  • 機械学習やデータサイエンスにDatabricksを通じて触れたい方
  • Databricksのデータ準備でTROCCO®の活用を考えている方

Databricksて何?

開発に入る前に、簡単なDatabricksの説明をします。

Databricksは、Apache Sparkの生みの親が開発したデータ分析基盤のプラットフォームです。

最大の特徴は「レイクハウス・プラットフォーム」を提供していることです。
レイクハウスとは、データの収集・蓄積から分析・機械学習モデル開発並びに運用を一気通貫・効率的かつ安価に行うことができる統合プラットフォームであり、データレイクとデータウェアハウスの2つの機能を持っています。

image.png

長所は、データの在処が比較的わかりやすい構造になってることから、データのサイロ化を防いでくれる点にあります。

また、Databricks内ではNotebook環境があり、画像データのような非構造化データも扱うことができるため、データサイエンティストやMLエンジニアにとって非常に馴染みやすい構造になってます。

これらの点を踏まえ、Databricksは機械学習やデータサイエンスに取り組む上で非常に有用なプラットフォームの1つだと言えます。

転送するデータの紹介

機械学習の題材として、kaggle APIからデータを取得します。

kaggleやったことある人なら知っているであろう、Titanicデータを今回は使います。

スクリーンショット 2024-08-12 0.13.37(2).png

転送前の事前準備

転送を実装する前に、Databricks,TROCCO®,Kaggle APIそれぞれで事前の設定が必要になります。

転送用Databricksのウェアハウス・スキーマの準備

Databricksのアカウントがあることを前提とします。無料でも始められます。

まず、Databricks内にSQLウェアハウスを作成してください。

スクリーンショット 2024-08-11 21.54.09 2.png

次に、データ転送にあたり、Databricks上でスキーマを作成する必要があります。
「SQLエディタ」から下記SQLを叩くなどして、転送用のスキーマを作ります。

CREATE SCHEMA IF NOT EXISTS {カタログ}.{スキーマ};

スクリーンショット 2024-08-11 20.40.25 2.png

作成されたかどうかはカタログから参照できます。

スクリーンショット 2024-08-11 20.49.10 2.png

TROCCO®でのDatabricksの認証設定

Databricksと接続するにあたり、TROCCO®で認証設定が必要になります。

TROCCO®の画面から、接続情報の新規作成を選び、Databricksを選択します。

スクリーンショット 2024-08-12 14.24.16 2.png

TROCCO®との接続は、DatabricksのSQLウェアハウス単位で行います。
SQLウェアハウスの「サーバーのホスト名」「HTTPパス」を、TROCCO®の「Server Hostname」「HTTP Path」に設定します。
またTROCCO®のPersional Access Tokenについては、SQLウェアハウスの「パーソナルアクセストークンを作成する」を押して、アクセストークンを発行してください。
(バツ閉じするとアクセストークンが再表示できないので、メモの準備をお願いします)

スクリーンショット 2024-08-12 15.25.46 2.png

スクリーンショット 2024-08-12 15.21.54 2.png

kaggle APIのトークン取得

最後にkaggle APIを使うための、トークン発行を行います。
Settingの画面から、APIのCreate New Tokenを押して、発行します。

スクリーンショット 2024-08-12 0.35.39 2.png

発行後、jsonファイルとしてローカルにダウンロードされます。
後の章で使うusernamekeyが取得できます。

スクリーンショット 2024-08-12 0.44.25 2.png

転送の実装

TROCCO®にログインし、転送設定の新規作成に進み、以下を選択します。

  • 転送元 HTTP・HTTPS
  • 転送先 Databricks

スクリーンショット 2024-08-11 23.38.21 2.png

転送元の設定

今回はTitanicデータの中で、train.csv(訓練データ)を転送します。
kaggel APIの設定は以下表のように実行してください。
表にない項目はデフォルト値や空欄で問題ありませんでした。

設定項目名 設定内容
URL https://www.kaggle.com/api/v1/competitions/data/download/titanic/train.csv
HTTPメソッド GET
文字エンコーディング utf8
ファイル入力形式 CSV/TSV
HTTPヘッダAuthorization Basic username:key

※ HTTPヘッダのusername:keyBASE64に変換する必要がありました...汗
今回こちらのサイトを活用して認証がうまくいきました。

スクリーンショット 2024-08-12 13.22.06 2.png

転送先の設定

転送先の設定として、Databricksのカタログ、スキーマ、テーブルを設定してきます。
転送モードは今回全件洗い替え(REPLACE)を採用、詳細設定はご自身の環境に合わせて設定してください。

スクリーンショット 2024-08-11 23.25.46 2.png

STEP2に進み、転送前のデータの中身を確認します。
データ型等はデフォルトの値で転送上問題ありませんでした。

スクリーンショット 2024-08-12 13.50.15 2.png

実行結果の確認

Databricks内のSQLエディタを開き、下記SQLを叩いて、データが正しく表示されれば転送成功です!お疲れ様でした!

SELECT * 
FROM
{カタログ}.{スキーマ}.{テーブル};

スクリーンショット 2024-08-12 13.51.27 2.png

まとめと今後の予定

今回はDatabricksの転送先が開発されたことを記念して、試しにkaggleのデータを転送してみました。
本業で取り組んでいる「転送元HTTPの記事発信」と同じ感覚で設定できたので、楽に進めることができました!
初手でDatabricksを扱うのは、これくらいから始めるのが良さげですね。

また、kaggle APIを紹介したブログや記事ではCLIを使ってる場合が多いですが、TROCCO®だと設定項目も少なくGUIで完結するため、スムーズにデータ転送ができます。
転送元HTTP・HTTPS、本当に使い勝手良いですね。

次回は、Databricks内のNotebookをいじっていきたいと思っています。
何回連載するかは未定ですが、最終的には、社内に蓄積されたデータを使って、予測モデルを構築し、予実の乖離を見て遊びたいと思います。

続編を楽しみにしていてください!

参考文献

TROCCO®,kaggle,Databricksの公式ドキュメント以外にも以下の記事を参考にしました。

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?