問題タブ [etl]

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.

0 投票する
2 に答える
2986 参照

data-warehouse - Ab Initio ETLデータウェアハウジングツールのビデオチュートリアル!


Ab-InitioETLデータウェアハウジングツールのビデオチュートリアルがどこにあるか教えてください。
グーグルでネットサーフィンしましたが、資料が見つかりませんでした。
前もって感謝します。

0 投票する
1 に答える
482 参照

sql-server - SQLServerETLプロセスのトランザクションログ

ETLプロセスのステージングデータベースでリカバリモードを単純に設定しても大丈夫ですか...お客様は定期的なバックアップさえ行っていません!では、トランザクションログを保持することのポイントは何ですか...

一括インポート後に毎日のバックアップを整理することを提案します。それだけです...

この計画に反対するものはありますか?また、トランザクションログは3週間後に80GBになりました...

乾杯

0 投票する
1 に答える
8109 参照

sql - Sybase: SQL を使用して CHAR または VARCHAR フィールドから印刷できない文字を削除するにはどうすればよいですか?

一部の文字列フィールドに印刷できない文字が含まれているように見える Sybase データベースを使用していますが、これにより処理コードの一部が失われています。一見、改行とキャリッジ リターンのみのように見えますが、そこには ASCII コード 27 もあります。ESC 文字、いくつかのアクセント付き文字、およびその他の奇妙な文字が含まれています。

データベースを変更するための直接アクセス権がないため、不良データを変更することはまだオプションではありません。今のところ、私はそれをフィルタリングするだけで間に合わせる必要があります. あるデータベースからテーブル データをエクスポートし、夜間のバッチ プロセスで別のアプリケーションが使用するデータベースにロードしようとしています。

理想的には、文字のリストを渡して、Sybase にそれらの文字を削除したデータを返すだけの関数が欲しいです。可能であれば、プレーン SQL でできることを維持したいと思います。

ASCII 0 - 31 の文字を削除するには、次のようにします。

TABLE から FIELD1 として str_replace(FIELD1, (0-31), NULL) を選択し、FIELD2 として str_replace(FIELD2, (0-31), NULL) を選択します

これまでのところ、str_replace は私が見つけることができる最も近いものですが、ある文字列を別の文字列に置き換えることしかできません。文字範囲はサポートされておらず、上記のことはできません。

Unixサーバー上のSybase ASE 12.5で実行しています。

0 投票する
2 に答える
1673 参照

sql-server - 再利用可能な SQL Server ストアド プロシージャ。ネスティング; グローバル変数

他の多くのストアド プロシージャ内で呼び出すことができる、再利用可能でやや動的な TSQL コードを作成したいと考えていますが、SQL Server でこれを実装する方法に苦労しています。

環境は、共通の ETLManagement DB からこれらのモジュラー ストアド プロシージャのいくつかを呼び出す独自のラッパー ストアド プロシージャを持つ、多くの分散ソース システム データベースです。ラッパー sproc は、これらの共通/再利用可能な sproc のいくつかを呼び出し (動的に定義された制御テーブルで操作を実行するため)、次に INSERT INTO ステートメント (ソース システムによって所有および定義されます)、さらにいくつかの共通/re ステートメントを呼び出します。 -使用可能なsproc。

主な障害の 1 つは、ネストされた sproc で変数を宣言できないように見えることです。すべてのソース システム sproc が読み取れるグローバル変数を宣言するにはどうすればよいですか?

一般的なsprocを使用してこれを行うのが最善の方法ですか、それともより良い方法がありますか?

(TSQL プログラミングの私の素朴さを許してください。私は今まで他のツールで ETL を行ってきました。)

0 投票する
2 に答える
592 参照

sql - ETL のフィールド固有のエラー

MS SQL Server で ETL プロセスを作成していますが、特定の行の特定の列に固有のエラーが発生したいと考えています。たとえば、データは最初に Excel ファイルからすべての列があるテーブル (初期テーブルと呼びます) にロードされ、varchar(2000)次に、より具体的なデータ型 ( datetimeintなど) を含む別のテーブル (DataTypedTable) にデータをステージングします。 .) またはより厳密に制約された varchar の長さ。「1 月 13 日」は提出日の有効な日付形式ではありません。MM/DD/YYYY の形式を使用してください

これらのエラー メッセージは、プロセスの後半で、各メッセージが特定の行とフィールドを参照するエラー メッセージを含むレポートを自動化されたプロセスで作成できるように、何らかの方法で保存する必要があります (誰かが戻って、ソース システムを修正し、Excel ファイルを再送信します)。したがって、理想的には、何らかの障害テーブルに挿入され、失敗した行の主キー、列名、およびエラー メッセージが含まれます。

質問: SSIS や Talend などのオープン ソース ツールを使用してこれを実現できるかどうか疑問に思っています。または、どのようなハンドコーディングのアプローチをとりますか?

SQL を使用することを考えたいくつかのアプローチ (SQL プロシージャで手動で ETL を実行したことがないまでは、他のアプローチを検討したいと思います。C# の可能性もあります):

カーソルを使用して初期テーブルを読み取り、行ごとに、主キーのみを含む空のレコードを DataTyped テーブルに挿入し、各列に単一の更新ステートメントを使用して、その更新が失敗した場合に非常に具体的なものを挿入できるようにします。エラー メッセージ テーブルのその列に固有のエラー メッセージ。

すべてのデータをそのまま DataTyped テーブルに挿入しますが、 と のようSubmissionDateに列が重複していますSubmissionDateOld。最初の挿入後、*Old 列にはデータがあり、残りは空白で、SubmissionDateOld に基づいて SubmissionDate を設定する列ごとに 1 つの更新があります。

アプローチを提案することに加えて、あなたがそのアプローチを使用しているかどうか、またはあなたが行っている仕事ですでに同様のものを使用しているかどうかを知りたい.

0 投票する
3 に答える
2132 参照

sql-server - ETLステージングテーブルをユーザースキーマでグループ化しますか?

ステージングテーブルと、それらのテーブルを更新するストアドプロシージャを独自のスキーマに配置することを考えていました。SomeTableからデータウェアハウスにデータをインポートするときに、Initial.StageSomeTableプロシージャを実行して、データをInitial.SomeTableテーブルに挿入します。このようにして、初期ステージングを処理するすべてのプロシージャとテーブルがグループ化されます。次に、ETLのその段階などの検証スキーマがあります。

これは、これらすべての非常に類似したテーブルに一意の名前を付けようとするよりもクリーンなようです。これは、各テーブルがステージングプロセス全体でそれ自体の複数のインスタンスを持つためです。

質問:ユーザースキーマを使用してテーブル/プロシージャ/ビューをグループ化し、MS SQL Serverでのユーザースキーマの適切な使用法ですか?または、オブジェクトのアクセス許可をグループ化するなど、セキュリティのためにユーザースキーマを使用することになっていますか?

0 投票する
1 に答える
588 参照

c# - CDC と ETL のヘルプ/推奨事項

これが背景です。

いくつかの異なる顧客がいて、それぞれが異なるバックエンド ソース データベースを持っています。バックエンド データベースへのリアルタイムの変更を取得し、データをターゲット データベースのターゲット スキーマに変換するために戻ってきたいと考えています。その後、変更を警告するメッセージを他のアプリにブロードキャストします。

これを行うには、変更検出用の CDC ソフトウェアと、データを変換してターゲット データベースにロードするための優れた ETL ツールが必要です。

ここまで、IBM の CDC について説明してきました。研究はまだ準備段階ですが、他の人の意見を聞きたかっただけです。これにはどのようなプログラムをお勧めしますか? 私たちはこれを正しい方法で行っていますか...つまり、CDCソフトウェアはやり過ぎですか?

0 投票する
2 に答える
6714 参照

data-warehouse - AbInitioリカバリファイル(.rec)について説明してください。ファイルをいつロールバックする必要がありますか?


AbInitioリカバリファイルの概念を教えてください。

Abinitioグラフの実行に失敗した場合、どの場合にリカバリファイルをロールバックする必要があり、どの場合にリカバリファイルをロールバックするべきではありません。

AbInitioの資料へのリンクを提供してください。


ありがとう。

0 投票する
3 に答える
369 参照

etl - C# を使用してフラット ファイルをインポートするのに最適なサード パーティ コンポーネントはどれですか?

データのフラットファイルをインポートするために、かなり簡単な方法でプログラムから呼び出すことができるコンポーネントを探しているだけです。通常、データは 100,000 ~ 500,000 行で、各行には約 5 ~ 250 文字の長さのテキストの約 200 フィールドが含まれます。データは、CSV、タブ区切りなどです。

予算はありますが、できれば安く済ませたいですよね。

0 投票する
3 に答える
3546 参照

sql - SSISでCASTエラーを防ぐ方法は?

質問

エラーをスローする代わりに、値をキャストしてキャストが許可されていない場合にNULLを返すように SSIS に依頼することは可能ですか?

私の環境

Windows Server 2003 で Visual Studio 2005 と Sql Server 2005 を使用しています。

一般的な文脈

興味のある方のために、私の使用例を示します。どこかからのデータを汎用テーブル (履歴付きのキー/値構造) に保存する必要があります。このテーブルには、文字列、数値、または日付のいずれかの値が含まれています。構造は次のようなものです。

Value列に生の値を入れて、同じ値を入れてみたくて

  • Datetime にキャストできる場合は DateValue 列に
  • 数値にキャストできる場合は NumberValue 列に

これらの 2 つの型指定された列により、後であらゆる種類の集計と操作がはるかに簡単かつ高速になります。

これで、なぜ私がこの奇妙な質問をしているのかがわかりました。

============

よろしくお願いします。