FTP で暗号化された 250mb~ の ZIP ファイルのパスワードをダウンロードする必要があります。ダウンロードした後、共通のパスワードで解凍する必要があります.Zipファイルには1.5GBのMS Access DBが含まれており、これを読み取ってDB Oracleのいくつかのテーブルと結合し、そのデータを変換してそのOracle DBにロードする必要があります.
このプロセスを行うための最良の方法を探しています。私は ac# 開発者なので、最初に考えたのは、c# を使用し、FtpClientまたはFtpWebRequestを介してファイルをダウンロードし、次にDotNetZipなどの zip ライブラリを使用し、ODBC を介して MS Access データベースを開き、ODP.NEt を使用してレコードを Oracle にロードすることでした。それが私の「簡単な方法」だと思います。私はそれを行う方法を知っているからです。
しかし、これは大きなファイルであり、これには長い時間がかかる可能性があることがわかっているため、時間と効率、およびこのプロセスの時間を短縮する方法について懸念しています。
だから私はすべてのリクエストをオラクルに直接処理すると考えています(そこからFTPをダウンロードし、そこで解凍し、そこに直接情報を処理すると、C#からオラクルにレコードごとに渡すような時間が短縮されます)、この時間を短縮する必要がありますプロセスですが、これが正しい方法かどうかはわかりません。
そこで、私がアーカイブしようとしていることができるオラクルのライブラリを調べ始めたところ、PLSQL -utilsが見つかりました。MS Access データベースを読むことを除いて、私が必要とするすべてのことを実行できるようです。異機種間サービスですが、私はそれらを使用したことがないので、それについて少し迷っています。
また、Java を Oracle から直接使用できると聞いたことがあります。また、Java が JDBC 経由で MS Access に接続できることも知っています。それで私はそれについて検索し、Oracle DatabaseでのJavaメソッドの呼び出しに関する何かを見つけました
それが私がこれまでに持っているものですが、どの方法を使用すればよいかわかりません。つまり、私が知る限り、RDBMSはデータの処理を目的としていますが、ファイルのダウンロードなどのプログラミングを目的としていません。 OOPの言語を持っています。
追加情報として、このプロセスは月に 1 回か 2 回実行されるため、スケジュールを設定する必要があります。オラクルの場合は、スケジュール ジョブを使用して簡単に実行できます。C# では、スケジュールされたタスクまたは Windows サービス (これらの私が知っているツールです)
私が持っているいくつかの制限
- クライアントは MS SQL Server を持っておらず、ライセンスを購入することもできません (したがって、このプロセスに DTSX を使用することはできません)
- Oracle本番サーバーでは、すべてのことを行うのに十分な権限がない可能性がありますが、プロセスに最適であれば、それらに準拠できます
- バックエンド サーバー (Java、IIS、WebLogic、JBoss などでホストされている c#) が必要な場合、このサーバーと Oracle サーバーは異なるものになります。
- Unix サーバーでホストされている Oracle データベース
以上のことから、このすべてのプロセスを効率的に行うにはどうすればよいですか? .net を使用して、Oracle データベースにレコードごとにロードする必要がありますか? オラクルですべてを行う必要がありますか?または、これのどれもありませんか? これを行うより良い方法はありますか?