0

SQL SSIS 2005 を使用してインポートする方法をもう一度検討したいと思います。CSV ファイルには、行ごとに異なる数の列が含まれています。すなわち。

最初の 3 行としましょう:

"1", "FirstName1", "LastName1"
"2", "FirstName2", "LastName2"
"3", "FirstName3", "LastName3"

4 ~ 5 行:

"210", "Crows st", "Melbourne", "VIC"
"212", "Cr st", "Melbourne", "VIC"

その他:

"100", "Activities 1"
"101", "Activities 2"

私たちが行った唯一のアプローチは、データが 100 万行未満の場合、Excel にインポートしてから CSV またはタブ区切りとしてエクスポートし、SQL Server にインポートするというものでした。または、100 万件を超えるレコードの場合は、Ms Access 2007/2010 にインポートして、SQL にインポートし直すことができます (データが 2GB を超えないと仮定します)。これらのタイプのソリューションはうまく機能します!!!

SQLに直接解決策はありますか? 私たちはまだ Ms SQL Server 2005 BTW を使用しています。Ms Accessのサイズに2GBの制限があり、データが2GBを超えているため、私たちが尋ねた理由!!! 確かに、このファイルを行数に基づいて分割することはできますが、非常に面倒です。

エントリーお待ちしております。

ありがとう

4

2 に答える 2

0

ファイル内の3つのデータセットは3つの異なるエンティティ(顧客、住所、アクティビティ)のように見えるため、プロセスの最後にそれらを3つの異なるテーブルに配置することをお勧めします。つまり、データの分割はとにかく発生します。これは、読み込みプロセスのどこで分割するかという問題にすぎません。

私のアプローチは、ファイルを3つの別々のファイルに分割する小さなスクリプト(Python、Perl、PowerShellなど)です。SSISパッケージからスクリプトを呼び出して、すべてのワークフローを1か所にまとめることができます。その後、パッケージに3つのコネクタを追加し、必要なテーブルにデータをロードします。

于 2013-02-14T18:58:02.410 に答える
0

あなたはそれを行うことができますが、それは複雑であり、私ができる最善のことは、あなたを正しい方向に向けることです. これには、タイプ source のスクリプト コンポーネントと、それぞれの異なる宛先を指す条件付き分割の使用が含まれます。スクリプト コンポーネントはデータを読み取り、ソース行を作成します。それを行っている間に、条件付き分割オブジェクトで使用される「RowType」という追加の列を作成します。

お役に立てば幸いです。

于 2013-02-14T20:40:49.190 に答える