私はDatabricksをどのように学んできたのか(学習コンテンツのご紹介)

> [Databricksクイックスタートガイド](https://qiita.com/taka_yayoi/items/125231c126a602693610)のコンテンツです。

Databricksソリューションアーキテクトの弥生です。

私は2020年11月にデータブリックス・ジャパンに入社しました。それまでは、DatabricksもSparkも触ったことがありませんでした。

この約一年間でどのような学習コンテンツを活用してきたのかをシェアさせてください。ちなみに入社前の私のスキルセットは以下のようなものでした。

**クラウド**

- AWS ソリューションアーキテクトアソシエイト
- Google Professional Data Engineer

**プログラミング言語**

- R(データ分析プロジェクトで活用)
- Python(データ分析プロジェクトで活用)
- PHP(Webサービス開発していました)
- Objective-C(趣味でiPhoneアプリ作ってます)

**データベース**

- MySQL(環境構築・運用)
- SQL Server(こちらはSQL使うくらい)

Databricksはクラウドで提供されるSaaSであるので、上記クラウドの知識は特に環境構築の場面で役立ちました。RはRStudioで使っていましたが、PythonはJupyterノートブックでの利用でしたので、Databricksのノートブックに慣れるのにはそれほど難しさは感じませんでした。

一方で、以下に関する知識が不足していたので、これらを重点的に勉強しました(今でも勉強中ですが)。

- Apache Spark
- Delta Lake
- Databricks全般

# Apache Sparkに関する学習コンテンツ

日本語訳されている書籍はあまり多くないのですが、以下の本は一通り読んで、サンプルプログラムを動かすところからスタートしました。

https://www.amazon.co.jp/dp/B01EW6S6QM/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

https://www.amazon.co.jp/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AESpark-Holden-Karau/dp/4873117348

https://www.amazon.co.jp/Spark%E3%81%AB%E3%82%88%E3%82%8B%E5%AE%9F%E8%B7%B5%E3%83%87%E3%83%BC%E3%82%BF%E8%A7%A3%E6%9E%90-%E2%80%95%E5%A4%A7%E8%A6%8F%E6%A8%A1%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E4%BA%8B%E4%BE%8B%E9%9B%86-Sandy-Ryza/dp/487311750X/

どうにかこうにか英語の書籍も読みました。

https://www.amazon.com/Spark-Definitive-Guide-Processing-Simple/dp/1491912219

https://www.amazon.com/High-Performance-Spark-Practices-Optimizing/dp/1491943203

ちなみにですが、ACM(Association of Computer Machinary)のメンバーになると英語のオライリー本(電子書籍)が読み放題になるのでお勧めです。年間1万〜2万円なので、数冊読めば元取れます。

https://services.acm.org/public/qj/keep_inventing/qjprofm_control.cfm

# Delta Lakeに関する学習コンテンツ

Delta Lakeに関する本はまだこちらしか存在していませんが、内部機構が詳細に説明されているのでお勧めです。

https://www.oreilly.com/library/view/delta-lake-the/9781098104580/

あとはマニュアル、ブログ記事で説明されているDelta Lakeのコンテンツを勉強しました。

https://qiita.com/taka_yayoi/items/c6907e2b861cb1070f4d#delta-lake

# Databricksに関する学習コンテンツ

とにかく、Databricksに関しては右も左もわからなかったので、アカデミーのトレーニングを受けまくりました。Self-pacedトレーニングは好きな時間に実施できますし、サンプルノートブックをトライすることで理解が深まります。インストラクターによるトレーニングもいくつか受講しましたが、こちらも実践的で非常に役立ちました。タイムゾーンによっては夜中に受講することになりますが。

https://databricks.com/learn/training/home

なお、無償のDatabricks環境を活用することも可能です。

https://qiita.com/manabian/items/65fdb1210bf1081ac958

イントラクターによるトレーニングは以下を受講しました。どれも非常に役立ちました。

- Apache Spark Programming with Databricks: Apache Sparkって何？というところから学べます。
- Data Engineering with Databricks: Spark APIを用いたデータ加工を体験できます。
- Optimizing Apache Spark on Databricks: 個人的には一番勉強になったコースです。Sparkのパフォーマンスチューニングを学べます。

Self-pacedのコースは非常にたくさんありますので、ご自身のペルソナ(データサイエンティスト/データエンジニアなど)に応じてコースを選択していく形になります。私が受講したコースの一部を紹介します。

**Databricksでのコラボレーション**

- Databricks: How-To Videos -> How to Share Data Insights Using Databricks
- Quick Reference: Databricks Workspace User Interface
- Introduction to Databricks Repos

**ETL関連**

- Easy ETL with Auto Loader
- Introduction to Delta Live Tables
- Introduction to Multi-Task Jobs

**Spark関連**

- Quick Reference: Spark Architecture
- Apache Spark Programming with Databricks
- Data Engineering with Databricks
- Optimizing Apache Spark on Databricks


そして、ここでもひたすらマニュアルを読みました。少なくともメイン機能(ノートブック、クラスター、MLflow周り、Delta Lake)に関しては精読しておく必要あると思います。機能アップデートの際にも読み返したりしています。

https://docs.databricks.com/

Azure Databricksであれば日本語ドキュメントもあります。

https://docs.microsoft.com/ja-jp/azure/databricks/

会社ブログも役立ちます。マニュアルに記載されていない機能提供の背景、ユースケース、技術的な詳細が結構説明されています。マニュアル、ブログで勉強になったと思ったものは翻訳したものを[Qiita](https://qiita.com/taka_yayoi/items/c6907e2b861cb1070f4d)にアップロードしています。翻訳しながら読むと理解が深まると思います。

https://databricks.com/jp/blog

あと、本やブログを読むだけではなく、マニュアル、ブログ記事に添付されているサンプルノートブックを実際に動かすことが重要だと思います。Databricks環境にはサンプルデータが格納されているので、サンプルノートブックを簡単に試すことができます。

Databricksでは実プロジェクトで活用できるサンプルノートブックをソリューションアクセラレータとして公開しています。

https://databricks.com/solutions/accelerators

日本語に翻訳したものはこちらで公開しています。

https://github.com/taka-yayoi/public_repo

これまで学んだこと含め、同僚の方と協力して本にまとめることができました。

https://www.amazon.co.jp/dp/B09V1YXFVQ/

そして、認定資格**Databricks Certified Data Engineer Professional**に合格することができました。リンク先では簡単ですが試験対策をまとめています。

https://qiita.com/taka_yayoi/items/08be162d451126d4b54b

### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)