1

約 200 個のファイル (csv、Excel、PDF、スクリーン スクレイプ) があり、それらすべてを SQL データベースに入れる必要があります。そのため、ほとんどのデータ ソースには固有の手順があります。

これまでのアイデアは次の 2 つだけです。

  1. 必要に応じて各データ ソースをプログラムで読み込むコードを記述し、必要に応じて挿入するコードを記述します (これは簡単な方法ですが、おそらく最も時間がかかる方法です)。

  2. ソースから宛先 SQL DB の列/テーブルに列をマップする各ファイルの XML マップを作成します。

他に考慮すべきツールや方法はありますか? 私は多分SSISが何とか助けることができますか?これは、BizTalk が作成されたプロジェクトのタイプのようですよね? しかし、それは高すぎる..

4

3 に答える 3

2

Pondlife が述べたように、実際のソリューションでは、要件の完全な複雑さが明らかになるにつれて、プログラムによるソリューションの保守とサポートがますます難しくなります。これは多くの場合、前もって明らかではありません。

私は適切な ETL ツールを選択します。典型的な基準のバランスを考えると、現時点では通常 SSIS が最良の選択です。次に、各入力を処理するための工数の予算を立てる必要があります。おそらく、非常に単純な入力で、ファイルあたり 0.5 人日 (設計、ビルド、単体テストを含む) を達成するのが最も速いでしょう。

最初のパッケージを他のパッケージの出発点としてコピーすることで、時間を節約できます。

このような「生の」入力では、通常、変更されていないデータをステージング テーブルにロードするだけで各パッケージを開始します。この時点で、すべての列を Unicode テキストとして読み込みます。その後、後続のデータ フローまたはパッケージは、そのデータを取得して配信できます。このアプローチにより、デバッグ、テスト、および監査が本当に高速化されます。ファイルの読み込みを信頼すると、SQL を使用してステージング テーブルにクエリを実行できます。

ところで、SSIS パッケージは実際には、入力、変換、および出力の要件を記述した XML ドキュメントです。ポイント 2 と同様です。

于 2013-03-13T00:32:49.907 に答える
1

普遍的に正しい方法はありません。それはあなたの特定の状況にとって何が簡単かだけが重要です。ここでは抵抗が最も少ない道を選びます。これは、いくつかのファイルがxml(おそらくcsv、excelなど)でマッピングするのが簡単な場合、それらにはxmlマッピングを使用することを意味します。xmlマッピングが機能しない他の人のために、私は何か他のものを使うでしょう。

現実には、一部のメソッドは1つのタイプのデータソースでより適切に機能し、他のメソッドは他のタイプでより適切に機能します。

于 2013-03-13T08:26:26.163 に答える
1

パール。各ファイル タイプをハックして、データベースへの bcp ロードに適した区切りファイルを生成するだけです。多くの場合、Perl で正規表現を使用して XML ファイルからでも何かを取得することはできませんが、XML を知っていて、入力が本当に整形式である場合、Perl には適切な XML を適切なデータに変換するためのパーサーがたくさんあります。;-)

Windows 上の Perl も、Ole を介して Excel を自動化します。そこに行って、それを行って、期待どおりに機能します。ファイルをテキストとして保存します。多分それを修正するためにそれを繰り返します。必要に応じて繰り返します。

他の誰かが示唆したように、この種のことがプログラミングに適していないことに同意しません。完璧ではありませんが、エラーは漸近的に減らすことができますが、これは手動プロセスには当てはまりません。

スクリプト、入力、出力はすべて別のディレクトリに保管してください。そうすれば、Perl (または何でも) を使用してファイルを数え、変換を検証できます。名前と内線番号に気をつけていれば、やるべきことがすぐにわかります。データベースのロードを含むすべてのスクリプトを作成し、必要に応じていつでも再実行できるようにします。パーサーを微調整することによってのみ修正できるデータベース内のデータの問題に気付いた後は、非常に満足です。

ハッピーハッキング。

于 2013-03-14T04:10:08.240 に答える