
必要であれば、これを適切な場所に移動してください。どこで最善の回答が得られるかわかりません。
レポート アプリケーションを作成する必要があり、可能であれば Ubuntu で作成したいと考えています。元のデータは、区切りログ ファイルを定期的に指定の場所に FTP できるアプライアンス ベースのアプリケーションから取得されます。そのデータを使用して、スケジュールされたレポートを作成するために使用する MySQL データベース (作成予定) を更新するメカニズムを開発し、最終的にさまざまな配布グループに電子メールで送信します (PDF 形式または Excel 形式のいずれか)。さまざまな MySQL クエリを作成する (およびデータベースを設計する) ための社内の知識はありますが、Linux/Ubuntu には最適なアプローチを決定する方法がありません。Windows 側で Crystal Reports を使用して別のアプリケーションに同様のことを行っていますが、このアプリケーションを配布する必要があるため、Windows ライセンス コストなどに対処する必要がないようにしたいと考えています...
適切なツールやアプローチに関するアドバイスだけでなく、大きなコストをかけずにこれを効果的に実行できる資格のあるリソースをどこで見つけられるかについての推奨事項も必要です。
答え1
次の構文を使用して、コマンドラインからコマンドを解析できます。
mysql -u {user} -p{password} {database} <{text.file}
これにより、{text.file} から {database} までのすべての行が解析されます。テキスト ファイルには有効な MySQL 命令が含まれている必要があり、パスワードはプレーン テキストで表示されるps
ため、それを挿入することをお勧めしますmy.cnf
(セキュリティが最優先です)。
2つの方法...
MySQLコマンドを使うことができますデータを読み込む(その他のオプションについてはリンクを参照してください):
データをロード [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE {text2.file} を TABLE {table} にロード
text.file 内で、テキスト ファイルをテーブルに挿入します。これにより、既存の行が上書きされる可能性があるため、毎回新しいファイルを作成する必要があります。LOAD DATA は非常に高速です。より短い方法 (Caesium のコメントからの 1 行):
mysql -u {user} -p {pass} -e "LOAD DATA {rest of command}" {db}
text.file にたくさんの
INSERT INTO
's を入れることができます。これは LOAD DATA よりも遅いですが、実装は簡単です。