UbuntuシステムでMySQLを使用して複数のSQLテーブルにロードする複数のフォルダにCSVファイルとしてデータを格納しています。各テーブルおよびファイルは、このスキーマ(ファイルは、idフィールドを持っていない)、次のとおりです。複数のファイルから複数のテーブルにデータを挿入
+ ------ + -------- + -------- + --------- + ---------- +
| SPO_Id | SPO_Name | SPO_Date | SPO_Price | SPO_Amount |
+ ------ + -------- + -------- + --------- + ---------- +
を各ファイルには、一日のために価格設定や売上データが含まれています。残念ながら、ファイル名は日付の後に付けられません。日付の後に名前が付けられたフォルダに格納されます。
use pricing ; # the database I want the tables in
drop table if exists SP_2017_01_02 ;
create table SP_2017_01_02 (
SPO_Id int not null primary key auto_increment,
SPO_Name varchar(32),
SPO_Date date,
SPO_Price float,
SPO_Amount int
);
load data local infile '/Exmpl/20170102/prices.csv'
into table SP_2017_01_02
fields terminated by ','
lines terminated by '\n'
ignore 1 lines # First line contains field name information
(SPO_Name, SPO_Date, SPO_Price, SPO_Amount) ;
select * from SP_2017_01_02 ;
show tables ;
このクエリは、のために正常に動作します:ここではディレクトリはここ
------> 20170102 ------> prices.csv
/
/
Exmpl ------> 20170213 ------> prices.csv
\
\
------> 20170308 ------> prices.csv
どのように見えるかの例図は、テーブルにファイルを格納してからデータを引き出し、私が書いたクエリされます一度に1つのテーブルを読み込む。しかし、私は何百ものテーブルを持っているので、このプロセスを自動化する必要があります。私はそれを見て、ここで私が見つけたいくつかの事があります:
Here質問はSQL Serverを参照してください。その答えは、実際の物質なしに何をすべきかの示唆を与える。
This questionは、これだけは、特に私がアクセスを持っていないためにどの、SSISを使用している、また、鉱山と非常によく似ている(と質問が未解決のままである)
This postは、制御ファイルの参照を使用して提案するが、これはのためにありますsql-loaderとoracleです。
Using pythonがこれまでに使用したことはないかもしれません。私の質問はあまりにも複雑な問題のように思えます。
This oneおよびthis oneもpythonを使用しますが、1つのファイルのデータで1つのテーブルを更新するだけです。
私はSQL Serverで多くの作業をしましたが、私はかなり新しいMySQLです。どんな助けでも大歓迎です!
更新
私は、MySQLでこの使用した動的SQLを行うことを試みてきました。残念ながら、MySQLではストアドプロシージャを使用して動的SQLを実行する必要がありますが、関数はストアドプロシージャ内にデータをロードできません。 @RandomSeedとしてpointed out、this cannot be doneとMySQLのみ。私は彼の助言を取り、これを処理するシェル/ pythonスクリプトを書くつもりです。
私は(または他の誰かが)確かな答えを出すまでこの質問を開いたままにします。
ありがとうございます。上記の私のアップデートに従って、私はこれをシェルスクリプトかPythonスクリプトのどちらかで試してみるつもりです。これは私を起動させるものかもしれません。 – KindaTechy
シェルスクリプトを使用している場合は、シェルに値を返すためのPython関数を取得する方法については、次を参照してください。http://stackoverflow.com/questions/2115615/assigning-value-to-shell-variable-using-a -function-return-value-from-python http://stackoverflow.com/questions/26162394/convert-a-python-data-list-to-a-bash-array – Charlie
もしあなたがPythonを使っているなら、あなたはSQLのもののために使用する? – Charlie