はじめに
MySQLのdumpデータhoge.sql
を貰った時、「Pythonで分析するにはどうしたらいいんだ、、」と思っていたので、Python上で読み取る方法を調べました。
せっかくなのでブログにまとめました。
ちなみにMySQLのセットアップは書きません。以下の資料がわかりやすいので、以下の資料を見てセットアップを行ってください。
TL;DR
- Poetryで簡単にローカルのPython環境構築
- MySQLのdumpデータをPython上で読み取る
Poetryで環境構築
必要なライブラリをインストールします。ご自身のセットアップ方法を確立されている方はこの章はスキップしてください!
とりあえずローカルにライブラリを色々読み込むのは嫌なのでPoetryを使います。
Poetryに関して学びたい人は以下の記事がおすすめです。
ここら辺はDockerでもvenvでも何でも良いので、ご自由にお選びください。
poetry new hogehoge
poetry add python-dotenv mysql-connector-python pandas
poetry shell
MySQLでdumpデータを読み込む
ゴタゴタ説明するのはお互い面倒だと思うのでコマンドを書いていきます。
ログインして、dumpデータを読み込んでいるだけなので難しいことはしてません。
-- ログイン usernameは適宜変更してください
mysql -u username -p
-- databaseの作成
CREATE DATABASE hoge;
USE hoge;
-- dumpデータを読み込み pathは適宜変更してください
SOURCE /path/to/dump_data.sql;
-- データに入っているtableを確認します
SHOW TABLES;
SHOW TABLES;
で以下のような出力が出てきます。
+-------------------------------+
| Tables_in_hoge |
+-------------------------------+
| table hoge |
Tables_in_hoge
のhoge
後でPythonに書き込むのでメモしておきましょう。また、table名も何を読み込みたいか確認しましょう。
Pythonでデータを開く
以下のコードでMySQLからdumpデータの読み込みを行います。
import os
import mysql.connector
import pandas as pd
from dotenv import load_dotenv
# .envから環境変数を読み込む
load_dotenv()
conn = mysql.connector.connect(
host="localhost",
# user_nameは自分のユーザー名に変更
user="user_name",
# 環境変数からパスワードを読み込み
password=os.environ.get("MySQL_PASSWORD"),
# Table_in_hogeのhogeをdatabase_nameに書き込む
database="database_name",
)
# table名を書きます
query = "SELECT * FROM tabel_name;"
data = pd.read_sql(query, conn)
print(data.head())
conn.close()
このコードをPoetryで動かすとdataが表示されます。
poetry run python hoge.py
終わりに
今回はMySQLのdumpデータをPythonで読み込む方法を紹介しました。
自分自身MySQLを全く理解できていないので、頑張ってお勉強したいですね。
何か勘違いしている箇所があればコメントで教えていただけると幸いです。
ありがとうございました。