問題タブ [ssis-2012]
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 - SSIS 2012 - パッケージの配置: CreateDeploymentUtility プロパティがプロジェクト プロパティに表示されない
サーバーにデプロイする多くのパッケージを含む SSIS 2012 プロジェクトがあります。ここ
に
書かれているように、配置ユーティリティを作成する必要がありますが、プロジェクトのプロパティには配置ユーティリティのサブメニューがありません...
sql-server - SSIS 2012 プロジェクト配置モデル - 環境の継承
本番環境、ステージング環境、テスト環境の 3 つの環境があります。各環境には、社内のバック オフィス システム (つまり、時間の収集、会計、人事など) 用の複数のデータベースがあります。
従業員福利厚生については、登録/終了を処理するために福利厚生プロバイダーに送信されるファイル フィードを作成します。SSIS 2012 より前は、構成を一元化する一連のカスタム SSIS コンポーネントがありました。そのため、パッケージをデプロイした場所に応じて、適切な接続文字列が自動的に選択されていました。
今では古い方法でうまくいきましたが、独自の問題があります (つまり、新しい開発者はパッケージを適切にセットアップするのを忘れて、それを理解するのに時間を費やすことがよくあります)。そのため、SSIS 2012 とプロジェクトの展開を進めたいと思います。モデル。
環境設定のコンセプトはとても気に入っていますが、単に prod/stage/test 用に 3 つの環境を作成するのは得策ではないようです。私たちのパッケージの多くには、カスタム SFTP 資格情報、ネットワーク上のさまざまな領域へのファイル パスなどがあります。そのため、これらの環境は、ほとんどのパッケージにとって実際には重要ではないもので非常に急速に拡大します。
ある環境設定で別の環境設定からデータを取得する方法はありますか? このような方法を使用すると、共通のデータベース サーバーを持つ運用環境の構成を作成し、それを運用構成内で特典ファイル フィード パッケージの 1 つに継承できます。特典ファイル フィード パッケージの prod config には、その他の非常に具体的な変数がすべて含まれます。
variables - SSIS 2012 の「グローバル」変数
子パッケージにデータを渡そうとすると問題が発生します。私の親パッケージはデータベースを介して実行され、実行するかどうかを別のパッケージと照合してチェックします。現在、私はそうするために ForEach ループを使用しています。次に、実行する必要がある行を 1 つの一意の ID で識別できます。次に、それを適切な子パッケージに渡して処理します。
私の質問は、パッケージ レベルではなくソリューション レベルで使用できるように、その識別子を 4 バイト変数に書き込む最も簡単な方法は何かということです。私が見た限り、子パッケージには何も渡すことができません。
助けてくれてありがとう!-D
ssis - 集中型DBの作成
異なるサーバー (B & C) に同じ名前の 2 つのデータベース (A) があります。両方のデータベースに同じスキーマがあります。(SQL サーバー 2008 r2)
タスク 1:両方のデータベースを名前 (A_B および A_C) で 3 番目のサーバー (D) にコピー (転送) します。
タスク 2:両方のデータベースを 1 つのデータベース (A_D) にマージします。(鍵の扱い方がわからない)
タスク 3:毎日、サーバー B と C からデータを取得し、中央のサーバー D に配置する必要があります。
どんな助けでも大歓迎です。
ありがとう。
リテシュ
sql - 一時テーブルのメタデータをフェッチしたくないSSISパッケージ
複数のフローを含む SSIS パッケージがあります。
各フローは、作成後にいっぱいになる「ステージング」テーブルの作成を担当します。これらのテーブルはグローバル一時テーブルです。
別のテーブルに、上記とまったく同じように 1 つの余分なフロー (パッケージは作成しませんでした) を追加しました。ただし、何らかの理由で、パッケージはこのフローで断続的に失敗しますが、いくつかのテーブル名を除いて、他のものとまったく同じです。
ポップアップし続けるエラー:
更新 - データ フローの挿入: エラー: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80004005。OLE DB レコードが利用可能です。ソース: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 説明: "不明なエラー"。OLE DB レコードが利用可能です。ソース: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 説明: "ステートメント 'select * from '##TmpMcsConfigurationDeviceHistory86B34BFD041A430E84CCACE78DA336A1'' が一時テーブルを使用しているため、メタデータを特定できませんでした。".
作成式:
"
解析された式 (=評価済み):
oledb - SSIS - SQL ルックアップ コマンド (JET OLEDB) でファイル名パラメーターを使用する
CSV ファイルに対して Jet エンジンを使用する場合、ルックアップ変換で SqlCommand をパラメーター化できますか? CSV とルックアップを操作する別の方法はありますか?
次のように、式を使用して変数からフォルダーの場所を取得する JET OLEDB 接続があります。
"Data Source=" + @[User::SourceRoot] + ";Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"text;HDR=Yes;FMT=Delimited(,)\";"
次に、SSIS ルックアップ変換には、次の SqlCommand があります。
SELECT * FROM Users.csv
これは問題なく動作しますが、「Users.csv」をハードコーディングしたくありません。これを設定する方法はありますか?部分キャッシュを設定しようとしましたが、詳細画面の「カスタム クエリ」を使用したり、「?」を使用したりしてもうまくいきませんでした。クエリのパラメーター。(私はSQL 2012を使用しています)。
sql-server-2008 - SQL2012 インスタンスで SSIS 2008 パッケージを実行する
ETL ソリューションとデータベースを SQL Server 2012 にアップグレードしています。このアップグレードをテストしましたが、SQL 2012 インスタンスでジョブを使用して SSIS 2008 パッケージを実行することについて議論があります。2008 R2 インスタンス ジョブが実行されることを理解しています。
メッセージ Microsoft (R) SQL Server Execute Package Utility Version 10.0.5500.0 for 64-bit Copyright (C) Microsoft Corp 1984-2005. 全著作権所有。
開始: 2:10:11 AM DTExec: パッケージの実行で DTSER_SUCCESS (0) が返されました...
2012 インスタンス ジョブは、パッケージのインプレース アップグレードを行い、次を実行します。
メッセージ ユーザー: xxxx として実行されました。Microsoft (R) SQL Server Execute Package Utility バージョン 11.0.2100.60 for 64-bit Copyright (C) Microsoft Corporation. 全著作権所有。開始: 8:29:18 AM DTExec: パッケージの実行で DTSER_SUCCESS (0) が返されました。開始: 午前 8:29:18 終了: 午前 8:59:46 経過: 1816.76 秒。パッケージは正常に実行されました。ステップは成功しました。
私の質問は次のとおりです。このようなシナリオで失敗したという報告はありますか?下位互換性があると想定しても安全ですか?
odbc - SSIS の ODBC 宛先で「クライアント タスクが多すぎます」を解決するにはどうすればよいですか?
とりわけ、20 の異なる Excel 2010 ファイルのそれぞれにある 9 つの異なるタブに書き込む必要がある SSIS 2012 パッケージがあります。
データ フロー タスクの 1 つで、Visual Studio 2012 内でパッケージを実行すると、検証中に次のエラーが発生します。
エラー: MyPackage の 0xC0014020、接続マネージャー "Excel ファイルは何でも": ODBC エラー -1 が発生しました。
エラー: MyPackage の 0xC0014009、接続マネージャー "Excel ファイルは何でも": データベース サーバーとの Open Database Connectivity (ODBC) 接続を確立しようとしてエラーが発生しました。
このエラーを生成するこのデータ フロー タスクは、機能する場合、各 Excel ファイルの 6 つのタブに書き込みます。この SSIS パッケージの以前のバージョンではファイルが少なかった (4 つ) ため、問題なく動作しました。また、各 Excel ファイルの他の 3 つのタブに書き込む、同じパッケージ内の別のデータ フロー タスクも正常に動作します。2 つのデータ フロー タスクは、同じ接続マネージャーを使用しています。エラーで指定された特定の接続マネージャーは、パッケージが実行されるたびに変更されます。
ODBC トレースを有効にしたところ、ログに次のエラーが見つかりました。
DIAG [08004] [Microsoft][ODBC Excel Driver] クライアント タスクが多すぎます。(-1036)
ODBC destinations に関するいくつかのドキュメントを見つけました。関連する部分は次のとおりです。
同じテーブルまたは異なるテーブルに対して、同じマシンまたは異なるマシン上で並列に実行できる ODBC 宛先コンポーネントの数に制限はありません (通常のグローバル セッション制限を除く)。
ただし、使用されている ODBC プロバイダーの制限により、プロバイダーを介した同時接続数が制限される場合があります。これらの制限により、ODBC 宛先でサポートされる並列インスタンスの数が制限されます。SSIS 開発者は、使用されている ODBC プロバイダーの制限を認識し、SSIS パッケージを構築する際にそれらを考慮する必要があります。
わかりました。でも:
- Microsoft Access データベース エンジン 2010 再頒布可能パッケージに含まれる 32 ビット Excel ドライバーの並列接続の制限は何ですか? それともそれも問題ですか?
- 並列接続に制限がある場合、検証フェーズ中を含め、パッケージを実行するときに SSIS に制限を適用させるにはどうすればよいですか?
追加情報として、すべての ODBC 接続マネージャーで DelayValidation を True に設定しています。パッケージの開始時にファイルがまだ存在しないため、すべての ODBC 宛先で ValidateExternalMetadata を False に設定しています (ファイルのコピー タスクにより、パッケージ内のすべてのファイルが以前に作成されます)。各接続マネージャーの接続文字列は式によって生成されますが、結果は次の形式になります。
式で使用されるパラメータにより、ファイル名とディレクトリ名のみが変更されます。
ssis - エラー: データ フロー タスクの 0xC0202009、OLE DB 宛先 [43]: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80040E21
ソースは TXT フラット ファイル ソースで、宛先のタイプは OLE DB です。(画像参照)
パッケージを作成するためのCode Project に関する非常に基本的なチュートリアルを見つけました。手順は完了しましたが、デバッグ時に奇妙なエラーが発生しました(以下):
誰かがこのエラーについて説明できますか? ウェブでエラーを検索するのに何時間もかかりました。
SSIS パッケージ "C:\Users\USRNAME\Desktop\Projects\DataGeneratorSsis\DataGeneratorSsis\Package.dtsx" が起動しています。情報: データ フロー タスクの 0x4004300A、SSIS.Pipeline: 検証フェーズが開始されています。情報: データ フロー タスクの 0x4004300A、SSIS.Pipeline: 検証フェーズが開始されています。警告: データ フロー タスク、SSIS.Pipeline の 0x80047076: 出力列 "intApplication" (7) の出力 "フラット ファイル ソース出力" (6) およびコンポーネント "フラット ファイル ソース" (2) は、その後データ フローで使用されません。仕事。この未使用の出力列を削除すると、データ フロー タスクのパフォーマンスが向上する可能性があります。情報: データ フロー タスクの 0x40043006、SSIS.Pipeline: 実行フェーズの準備が開始されています。情報: データ フロー タスク、SSIS.Pipeline で 0x40043007: 実行前フェーズが開始されています。情報: 2 : ファイル「C:\Users\USRNAME\Desktop\ddd.txt」の処理が開始されました。情報: データ フロー タスクの 0x4004300C、SSIS.Pipeline: 実行フェーズが開始されています。情報: データ フロー タスクの 0x402090DE、フラット ファイル ソース2: ファイル "C:\Users\USRNAME\Desktop\ddd.txt" に対して処理されたデータ行の総数は 2 です。エラー: データ フロー タスクの 0xC0202009、OLE DB 宛先 [43]: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80040E21。OLE DB レコードが利用可能です。ソース: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80040E21 説明: "複数ステップの OLE DB 操作でエラーが発生しました。利用可能な場合は、各 OLE DB ステータス値を確認してください。作業は行われませんでした。". エラー: データ フロー タスクの 0xC020901C、OLE DB 宛先 [43]: OLE DB Destination.Inputs[OLE DB Destination Input].Columns[AppID] OLE DB Destination.Inputs[OLE DB Destination Input] でエラーが発生しました。返された列のステータスは、「データが失われる可能性があるため、値を変換できませんでした。」でした。エラー:データ フロー タスクの 0xC0209029、OLE DB 宛先 [43]: SSIS エラー コード DTS_E_INDUCEDTRANSFORMFAILUREONERROR。エラー コード 0xC0209077 が発生したため、"OLE DB Destination.Inputs[OLE DB Destination Input]" が失敗し、"OLE DB Destination.Inputs[OLE DB Destination Input]" のエラー行の処理でエラーの失敗が指定されています。指定されたコンポーネントの指定されたオブジェクトでエラーが発生しました。これより前に、失敗に関する詳細情報を含むエラー メッセージが投稿される場合があります。エラー: データ フロー タスク、SSIS.Pipeline で 0xC0047022: SSIS エラー コード DTS_E_PROCESSINPUTFAILED。入力「OLE DB Destination Input」(56) の処理中に、コンポーネント「OLE DB Destination」(43) の ProcessInput メソッドがエラー コード 0xC0209029 で失敗しました。識別されたコンポーネントが ProcessInput メソッドからエラーを返しました。エラーはコンポーネントに固有のものですが、エラーは致命的であり、データ フロー タスクの実行が停止します。これより前に、失敗に関する詳細情報を含むエラー メッセージが投稿される場合があります。情報: データ フロー タスク、SSIS.Pipeline で 0x40043008: 実行後フェーズが開始されています。情報: データ フロー タスクの 0x402090DD、フラット ファイル ソース2 : ファイル「C:\Users\USRNAME\Desktop\ddd.txt」の処理が終了しました。情報: データ フロー タスクの 0x4004300B、SSIS.Pipeline: "OLE DB Destination" が 0 行を書き込みました。情報: データ フロー タスク、SSIS.Pipeline で 0x40043009: クリーンアップ フェーズが開始されています。タスクが失敗しました: データ フロー タスクの警告: パッケージで 0x80019002: SSIS 警告コード DTS_W_MAXIMUMERRORCOUNTREACHED。Execution メソッドは成功しましたが、発生したエラーの数 (4) が最大許容数 (1) に達しました。故障の原因となります。これは、エラーの数が MaximumErrorCount で指定された数に達すると発生します。MaximumErrorCount を変更するか、エラーを修正してください。SSIS パッケージ "C:\Users\USRNAME\Desktop\Projects\DataGeneratorSsis\DataGeneratorSsis\Package.dtsx" が終了しました: 失敗。
関連するエラー メッセージ
OLE DB Destination.Inputs[OLE DB Destination Input].Columns[AppID] on OLE DB Destination.Inputs[OLE DB Destination Input] でエラーが発生しました。返された列のステータスは、「データが失われる可能性があるため、値を変換できませんでした」でした。