問題タブ [ssis-data-flow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ssis - 宛先に出力されない結果の表示
データ フローを開発するとき、常に結果を出力先に出力したいとは限りませんが、データを確認したいと考えています。
出力先を指定せずにデータ ビューアーを出力にアタッチする方法はありますか?
ファイルと生の宛先には、受け入れるデータ型に制限があります。コードをテスト/ビルドするためだけに変換を添付したくありません。
null への何らかの出力はありますか? その後、結果セットのデータ ビューを取得できました
ssis - null値をインポートするSSISデータフローフロートからNVarcharへの変換
Excel 2007 スプレッドシートをステージング テーブルにインポートしようとしていますが、一部の列の種類で問題が発生しています。一部の列には、数値とテキスト値の組み合わせがあります。つまり、Customer No という列には、1234、32432433 などの数値、または A1000、ACC101TEXT などのテキスト値を含めることができます。スプレッドシートをインポートすると、テキストを含む値が null を返しますが、数値は正しくインポートされます。さらに、最後の行には必要なテキストの説明がこの列に含まれていますが、インポート後、この行の値は null です。状況を修正し、スプレッドシートをそのままインポートするためにできることはありますか? データ フロー変換からのデータ変換を使用してみましたが、まだ機能していません。Excel スプレッドシートを変更またはフォーマットすることはできません。
architecture - SSISは膨大な量のデータを統合します-提案
30個のデータベースと20個のテーブルのデータを統合する必要があります。私の最初の試みは、テーブルごとに1つのデータフローを作成することでした。各データフローには30個のデータベースソースがあり、各データベースから1つのテーブルからデータを取得し、1つの宛先に挿入します。十分なメモリがないため、これは機能しません。使用されないデータを無視するようにデータをフィルタリングしようとしましたが、役に立ちませんでした。これらのタスクは毎日実行する必要があります。統合データベース全体が削除されてから、新しいデータが挿入されます。これは、毎日大量のデータが挿入されることを意味します。誰かがメモリの問題を処理する方法の提案がありますか?
今のところ私が見ている唯一の解決策は、20個のパッケージを作成することです。各パッケージには30のデータフローがあります。各データフローは、1つのデータベースからのみデータを取得します。しかし、繰り返しになりますが、実行の順序はわかりませんか?1つのパッケージのデータフローが同時に実行を開始しますか、それとも1つずつ実行されますか?
編集:
これが私がやった方法です...これが制御フローのスクリーンショットです:
データフローのスクリーンショット:
すべてのデータベースから1つのテーブルに対して1つのパッケージを作成しました。この場合、各データフローはテーブルから4年前のデータを取得し、ソースデータベースにインポートします。問題は、1つのデータベースに1つのテーブルがあり、データが多すぎてエラーが返されることです。
バッファマネージャは、10484608バイトのメモリ割り当て呼び出しに失敗しましたが、メモリの負荷を軽減するためにバッファをスワップアウトできませんでした。20個のバッファーが考慮され、20個がロックされました。十分なメモリがインストールされていないか、他のプロセスがそれを使用していたか、またはロックされているバッファが多すぎるために、パイプラインで使用できるメモリが不足しています。
助言がありますか?
entity-framework - Entity Framework を使用した SSIS
非正規化された Access DB を取得し、EF 4 に基づいて SQL の正規化されたテーブルに移動しています。
Access DBに次のものがあるとしましょう
SQLで次の2つのデータベースを作成しています
tblNames:
tblFruits:
私のデータフローでは、派生列を使用して名前を取得できます (テーブルは実際には大きく、いくつかのデータ型変換を行っています)。ただし、派生列から出力を取得し、各行を果物テーブルの適切な ID と照合して、tblNames データベースに挿入する必要がある正しい出力を生成するにはどうすればよいですか?
ssis - 200 以上のテーブル インポート プロジェクトを整理するためのベスト プラクティス
この質問は、中規模のインポートに対する SSIS プロジェクトのベスト プラクティスに関する純粋に組織的な質問になります。
そのため、新しいデータで継続的に強化されているソース データベースがあります。次に、ソース データベースのデータを時々ロードするステージング データベースを用意して、ソース データベースのコピーで作業し、現在のシステムを移行できるようにします。私は実際に SSIS Visual Studio プロジェクトを使用してこのデータをインポートしています。
私の問題は、プロジェクトの実際の設計が実際には最適ではないことに気付いたことです。このプロジェクトを SQL Server に移動して、Visual Studio プロジェクトを手動で実行する代わりにインポートをスケジュールできるようにしたいと考えています。つまり、実際のプロジェクトをクリーンアップして最適化する必要があります。
したがって、基本的に、各テーブルのプロセスは単純です。テーブルを切り捨て、ソースから抽出し、宛先にロードします。そして、私は約200のテーブルを持っています。ソース データベースは一度に 1 つの接続しか受け付けないため、抽出を並列化することはできません。では、そのようなプロジェクトをどのように設計しますか?
パッケージごとに 1 つのデータ フローを使用することを推奨している Microsoft のドキュメントを読みましたが、200 の異なるパッケージを管理することは非常に不可能に思えます。一方で、200 個のデータ フローを含む 1 つのパッケージも扱いにくいように見えます...
編集 21/11:
このプロジェクトを開始するときに使用したかった最初のアプローチは、テーブル名のリストを反復処理してテーブルを自動的に抽出することでした。ソース テーブルと宛先テーブルのスキーマ オブジェクト名がすべて同じであるが、ソース データベースと宛先データベースが異なるベンダー (BTrieve と Oracle) のものである場合、これはうまくいく可能性があります。また、命名に関する制限も異なります。たとえば、BTrieve は名前を予約せず、30 文字を超える名前を許可しますが、Oracle はそうではありません。そのため、半自動の列マッピングを使用して 200 のデータ フローを手動で作成することになりました (ほとんどは自動でした)。
宛先データベースの CREATE TABLE クエリを生成するとき、方法論を自動化できる場合に備えて、新しいスキーマ オブジェクト名を生成するメソッドを含む再利用可能な C# ライブラリを作成しました。外部の .NET ライブラリを使用できるパッケージを生成するためのカスタム ツールがあれば、これでうまくいくかもしれません。
ssis - SSIS データ フロー コミットのタイミング
SSIS データフローを使用して、ソース テーブル "s" から空のターゲット テーブル "t" にデータをコピーしています。データフローの次のステップとして、最近コピーされたデータがテーブル「t」に存在するテーブル「z」から削除する削除ステートメントを実行する「Exec SQL スクリプト」があります。私が気付いたのは、前のデータフロー ステップでデータが完全にコミットされる前に、delete ステートメントが起動しているように見えることです。すべてのデータがテーブル "t" にあるとは限らず、削除の結果が正しくないことがあります。次のステップを実行する前に、データフローが完了してコミットされたことを保証する方法はありますか? それともこれはバグですか?
c# - SSIS コンポーネント DLL の配置
カスタム SSIS DataDlow コンポーネントを開発しました。
次に、DLL をデプロイします。私の作業およびテスト環境では、DLL を GAC に登録し、次のように対処しました。
"C:\Program Files (x86)\Microsoft SQL Server\120\DTS\PipelineComponents"
そして中に
"C:\Program Files\Microsoft SQL Server\120\DTS\PipelineComponents"
従うべきベストプラクティスはありますか? これは SSIS にカスタム コンポーネントをインストールする最良の方法ですか?
ティ!
excel - Excel 宛先の動的な列名 (データ フロー)
Excel の宛先で「宛先列」を動的にしようとしています。列に挿入されるデータは、列の量と位置と同様に常に同じです。この理由は、ヘッダーが多言語であるためです。ただし、Excel Destination は動的ヘッダー名を受け入れません。
とにかくこれらを動的にする方法はありますか、それとも別の回避策がありますか。
たとえば、ヘッダーは次のようになります。
ただし、ヘッダーは次のようにすることもできます。
sql - SSIS OLE DB ソース エディターでの出力パラメーターのマッピング
OLEDB Soruce SSIS(BIDS 2008)で出力パラメーターをマップするにはどうすればよいですか。(BIDS 2012)では、クエリパラメーターを入力および出力として指定できます。
以下の 2 つの picutres を参照してください。