ホーム > カテゴリ > データベース・SQL >

複数のmysqlimportを自動で実行する[SSH接続/Tera Termマクロ]

MySQLの「mysqlimport」を使用すると高速でCSVデータをデータベースのテーブルにインポートする事ができます。但し、レンタルサーバーの混雑状況やCSVデータのサイズによってはタイムアウトエラーになりますので、分割して実行する必要があります。

今回はCSVデータを分割した後の「複数のmysqlimportを自動で実行する」方法をご紹介します。

1. 前提条件

データ件数が多い「1つのCSVファイルを複数のファイルに分割」します。

※私は約1000万件のデータを複数ファイルに分割して実行しています。

2. 必要なツール

Tera Term (ターミナルエミュレータ)

3. 元のコード(手動)

Tera Termで次のようなmysqlimportを複数回、手動で実行します。

mysqlimport -u ユーザー名 -p データベース名  --password=パスワード --local ファイル名.1 
mysqlimport -u ユーザー名 -p データベース名  --password=パスワード --local ファイル名.2
mysqlimport -u ユーザー名 -p データベース名  --password=パスワード --local ファイル名.3
・・・
mysqlimport -u ユーザー名 -p データベース名  --password=パスワード --local ファイル名.N

※ファイル名の拡張子が連番になっていて、それ以外は同じです。
※ファイル名は必ず挿入先のテーブル名にします。(例)mst_person.txt
※mysqlimportの引数は環境に合わせてください。

4. 改善後のコード(自動)

先ほどのコードを「Tera Termマクロ」に変換します。

sendln "mysqlimport -u ユーザー名 -p データベース名  --password=パスワード --local ファイル名.1"
wait "user@server:~>"

sendln "mysqlimport -u ユーザー名 -p データベース名  --password=パスワード --local ファイル名.2"
wait "user@server:~>"

sendln "mysqlimport -u ユーザー名 -p データベース名  --password=パスワード --local ファイル名.3"
wait "user@server:~>"

このコードのファイル名は任意で拡張子はマクロファイルを示す「○○.ttl」にします。

4-1. コードの解説

[TTLコマンド]

wait <string1> [<string2> ...]指定された文字列がホストから送られて来るまでマクロを停止します。
sendln <data1> <data2>....データ(命令)と改行をホストに送信します。

リンク先はTera Termの公式です。コマンド一覧はTTL コマンドリファレンス(公式)もしくはTera Termマクロ コマンド一覧をご覧ください。

[その他]

user@server:~>user@serverはログインしたユーザー名とサーバー名です。

4-2. TTLのエスケープ文字(「'」「"」)

  (例1)sendln "echo abc"#$22"def"
  結果:echo abc"def

  (例2)sendln "echo abc"#$27"def"
  結果:echo abc'def

詳細はテラタームマクロの sendln で以下のようにダブルクオート(")とシングルクオート(')を混ぜたコマンドを入力したい(外部サイト)や複数の引用符が連なる行をTTLマクロで自動送信する(外部サイト)を参考にして下さい。

4-3. マクロの実行方法

Tera Termでサーバーにログインした後に、メニューの[コントロール][マクロ]で保存した「○○.ttl」を読み込みます。

次に黒い画面でエンターキーを押すとマクロが実行されて自動で「ファイル名.1、ファイル名.2、ファイル名.3」がテーブルにインポートされます。

以上となります。お疲れ様でした。

関連リンク

mysqlimportで最速にデータをインポートする方法
レンタルサーバーにSSH接続でMySQLへアクセスする





関連記事



公開日:2017年03月04日
記事NO:02287


この記事を書いた人

💻 ITスキル・経験
サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。

画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ
プチモンテ代表、アーティスト名:プチモンテ
🎵 音楽制作
BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は叙情詩、叙情的な楽曲が多い。楽曲制作は2023年12月中旬 ~

オリジナル曲を始めました✨

YouTubeで各楽曲を公開しています🌈
https://www.youtube.com/@petitmonte

【男性ボーカル】DA・KA・RA | 新たな明日が風と共に訪れる

【男性、女性ボーカル】時空を超越する先に | 時空と風の交響曲

【女性、男性ボーカル】絆 | 穏やかな心に奏でる旋律