お客様からは、当社のsftpサーバー上にx個のcsvファイルがあります。ファイルは、通常、ヘッダー名、列数、および行数の点で異なります(通常、数千から数百万行の間で、ファイルサイズは350MBを超えません)。現在、カスタムC#スクリプトを使用して、すべてのファイルをssisで処理しています。Linux上でスキーマが変更されているピボット解除ファイル
私が達成したいのはこれです...データフローと前処理時間を短縮するために、プロセス全体をlinux(私たちのsftpサーバ)に移してください。
これは皆さんの多くにとって些細な作業であるかもしれませんが、私はそのカテゴリに属しているとは言いません...実際にLinuxでの経験はありません。
だから、これを行う方法を、任意の実行可能な解決策は
CSVファイルは常に変化するユーザーの列の数を除いて、次のようになります...時間効率、メモリ消費量などに関しては、があります。
たとえば、ファイル名:userdata.csv
Question; user1; user2; user3; user4
How old are you; 20; 22; 45; 54
How tall are you; 186; 176; 166; 195
そして、私はこのようになります後だ出力:
Question; Value; User; Filename
How old are you; 20; user1; userdata
How old are you; 22; user2; userdata
How old are you; 45; user3; userdata
How old are you; 54; user4; userdata
How tall are you; 186; user1; userdata
How tall are you; 176; user2; userdata
How tall are you; 166; user3; userdata
How tall are you; 195; user4; userdata
提案、アドバイス...何でも大歓迎です。
更新:
だけで入力/出力の仕様について詳しく説明する。..
input.csv(アンケートの結果)
- 2の質問「user1」、「user2」、「user3」、「user4」の4人のユーザーが「あなたは何歳ですか」「どのくらいの高さですか」と答えています。
- この例では、「user1」 - 「user4」が使用されています。
- ライブデータでは、ユーザーの実際の名前が使用されます。
- ユーザー列の数は、アンケートに参加した人数によって異なります。
output.csv
- ヘッダー行は4つの静的フィールド表示する変化である:質問、値、ユーザとファイル名を。
- 質問ごとに行を入力ファイルと同じにする代わりに、ユーザーあたりの行が必要です。
- [ファイル名]列には、入力ファイルの名前を拡張子なしで保持する必要があります。
文字エンコーディングはUTF-8であり、セパレータはセミコロンです。修飾子は使用されません。
あなたは入力(および出力)ファイルの形式_exactly_指定する必要があります。 – martineau
サンプル値から入力値と出力値のマッピングが不明です。 – martineau