1.はじめに

皆さんこんにちは。

今回からDatabricks Notebook から MySQL または SQL Server にデータを更新する方法について説明していきます。

この度は、MySQLのサンプルデータベースを使用し、Databricks Notebook を使用して MySQL データベースにデータをアップデートする 2 つの方法を説明します。

Databricksワークスペースで必要な権限は既に設定されしました。

MySQL データベースのデータをAzure Databricksの外部カタログに直接反映させます。

Azure Databricksの外部カタログの作成方法については、以下のリンクを参照してください。

これはデータ更新前の MySQL データベースにある person テーブルのデータです。

PersonIDが11のレコードについて、CityカラムとAgeカラムのデータを更新します。

2.データ更新の方法

2-1.Spark DataFrames (Apache Spark のリレーショナル データベースの一種) を使用する

DataFrame を使用したアップデートの手順

  • Azure で MySQLデータベースに接続するための JDBC コネクタを作成します。
  • MySQL データベースからすべてのデータを DataFrame にロードします。
  • Delta フォーマットに変換します。
  • Delta テーブルでデータを更新します。
  • 更新されたデータを MySQL データベースに書き戻します。

作成した外部カタログ内のpersonテーブルを選択して、データ更新後の確認を実行します。

PersonID が11のレコードについて、AgeカラムとCityカラムのデータが元の値から新しい値に更新されていることが確認できます。

注意

  • この更新方法は、テーブル全体をロードする必要があるため、個別のレコードや少量のレコードの更新には適していません。
  • 複雑なロジックによるデータ変換、複数のデータソースとの結合が必要なデータ更新に適しています。

2-2.pymysql (Python ライブラリの一種) を使用する

pymysql を使用したアップデートの手順

  • pymysql ライブラリをインストール。
  • PyMySQL Connection を使用して AzureでのMySQLデータベースに接続を作成します。
  • SQL アップデートコマンドを実行するためのカーソルオブジェクトを作成します。
  • 現在のトランザクションのすべての変更をデータベースにコミットします。

作成した外部カタログ内のpersonテーブルを選択して、データ更新後の確認を実行します。

PersonID が11のレコードについて、AgeカラムとCityカラムのデータが元の値から新しい値に更新されていることが確認できます。

注意

  • この更新方法は、大量のデータ(ビッグデータ)の更新や複雑な処理には適していません。
  • 少量のレコードの更新、リアルタイムまたはニアリアルタイムの更新、そして複雑でない更新処理に適しています。

3.まとめ

本連載では、

Databricks Notebook から MySQL または SQL Server にデータを更新する方法について説明しました。

今回の記事が少しでもDatabricksを知るきっかけや、業務のご参考になれば幸いです。

日商エレクトロニクスでは、Azure Databricksの環境構築パッケージを用意しています。

Azure DatabricksやAzure活用、マイクロソフト製品の活用についてご相談事がありましたらぜひお問い合わせください!

・Azure Databricks連載シリーズはこちら

お問い合わせはこちら


この記事を読んだ方へのオススメコンテンツはこちら


この記事を書いた人

phongcq