この Docker プロジェクトは、CSV ファイルを MySQL データベースにインポートし、データ分析と Prophet を使用した予測を行う Python 環境をセットアップします。このセットアップはデータベースの作成、CSV ファイルからのデータインポートを自動化し、特定の地域、年齢層、性別に対して将来のデータを予測する Python スクリプトを実行します。
Dockerfile: Python 3.9 と MySQL クライアントがインストールされたコンテナイメージを定義。requirements.txt: Python パッケージの依存関係 (Pandas、Prophet、MySQL Connector など)。wait-for-mysql.sh: MySQL サーバーが準備完了になるまで待機する Bash スクリプト。setup-db.sh: データベースを設定し、CSV データをインポートするための Bash スクリプト。import_csv.py: CSV データを MySQL にインポートする Python スクリプト。prediction.py: Prophet を使用して将来の値を予測する Python スクリプト。kobe/: MySQL にインポートする CSV ファイルを含むディレクトリ。
Docker イメージは python:3.9-slim ベースで、MySQL クライアントと Python パッケージをインストールします。wait-for-mysql.sh スクリプトは、MySQL データベースが準備完了になるまで待機します。
データベース接続には、以下の環境変数が .env ファイル内で必要です:
DB_HOST=localhost
DB_USERNAME=root
DB_PASSWORD=password
以下のコマンドで Docker イメージをビルドします:
cd /SQL-TEST/
docker-compose buildコンテナを以下のコマンドで実行します:
docker-compose up -dコンテナは自動的に wait-for-mysql.sh と setup-db.sh スクリプトを実行し、以下の操作を行います:
- MySQL サービスの準備完了を待機。
- 新しい MySQL データベース
kobeを作成。 - CSV ファイルから適切な MySQL テーブルにデータをインポート。
CSV データがインポートされた後、prediction.py スクリプトは Prophet を使用して 2024 年および 2030 年の予測を生成します。結果は MySQL の 2024_future および 2030_future テーブルに保存されます。
終了までに20分以上時間がかかる場合があります。
このスクリプトは MySQL サービスが準備完了になるまで、MySQL の接続状態を繰り返し確認します。
このスクリプトは以下を実行します:
- MySQL に接続。
- 存在しない場合は
kobeデータベースを作成。 kobe/ディレクトリにある CSV ファイルからデータをインポート。
この Python スクリプトは kobe/ ディレクトリから CSV ファイルを読み込み、そのデータを MySQL データベースに挿入します。また、テーブル作成と重複データの回避も行います。
この Python スクリプトは以下を実行します:
- MySQL から履歴データを取得。
- Prophet モデルを使用して 2024 年と 2030 年の値を予測。
- 予測結果を MySQL テーブルに挿入。
pandasmysql-connector-pythonprophetnumpy<2.0plotly
すべての依存関係は Docker ビルド中に requirements.txt からインストールされます。