2009-07-16 9 views
1

SQL Serverデータベースにログファイルをインポートする必要があります。ファイルサイズは大きく、6MB前後で40000行あります。インポートのタスクは毎日のログで毎日実行する必要があります。ログファイルの各行には多くのフィールドが含まれています。後処理のためにデータベースの適切な列にインポートする必要があります。 私はこれらのソリューションが混乱しています:テキストファイルからSQL Serverデータベースにインポートするには、どのソリューションを選択する必要がありますか?

- これを行うにはSQL Server Integration Servicesを使用してください。

-Write一括コピー

を使用してC#のアプリ私は(SQL Serverおよび.NETフレームワーク内)ソリューションを選択するのは比較的自由です。これにはどんな解決策がありますか、あるいは別の解決策を提案することができます。

ありがとうございました。

//編集:SSISを試してみましたが、それは本当に簡単だとわかりました。しかし、毎日、ログファイルを受け取った後、私のプログラムはデータベースに自動的にインポートする必要があります。どうやってやるの?

+0

スケジュール設定方法に関する私の回答が更新されました。 – NikolaiDante

答えて

2

これを行うにはSSISパッケージを作成します。

インポート/エクスポートウィザードを使用して、パッケージの開始点を生成し、必要に応じて変更することができます。

これをSQL 2005で実行するには、SQL Management Studioのオブジェクトエクスプローラでデータベースを右クリックし、[タスク] - [データのインポート]を選択し、ウィザードに従い、最後にパッケージを保存することを選択します。

私はそれがSQL 2008の同様のプロセスだと思いますが、私はそれを手にする必要はありません。

パッケージを保存した後、SQL Serverエージェントを使用してパッケージをスケジュールすることができます。ジョブを設定するときは、タイプとして「SQL Server Integraton Services Package」を選択し、パッケージを選択します。

+0

あなたは私にこれの簡単な例を教えてもらえますか? :) – Vimvq1987

+0

答えを – NikolaiDante

+0

あなたは答えが本当に役に立ちます。しかし、私はまだ問題があります。ログファイル名は毎日(20090705のような形式の形式で)変更されていますが、まだ解決方法はわかりません。手伝って頂けますか? – Vimvq1987

1

ログファイルをSQLダンプに変換してログファイルの文字列を挿入し、そのSQLダンプをデータベースにロードするスクリプトを作成しています。

+0

これは私が最初に思ったことでした。スクリプトを作成してスケジュールします。たぶん、私はIntegration Servicesを一度も使用していなかったので...私はそれについて読む時間です。 – Jonathan

1

6メガバイトが:)

SQL Serverの統合サービス実際にはかなり小さいですが、タスクまで以上のものです。 BULK COPYは、特にこれが初めての人にとっては、すばやく複雑になる可能性があります。 3番目の選択肢として、INSERTを行うための独自のプログラムを書くことができますが、それはSSISのために構築されたものです。

関連する問題