タグ付けされた質問 「etl」

3
通常のVACUUM ANALYZEは9.1でも引き続き推奨されますか?
UbuntuでPostgreSQL 9.1を使用しています。スケジュールはVACUUM ANALYZEまだ推奨されていますか、それとも自動バキュームですべてのニーズに対応できますか? 答えが「依存する」の場合: 大きなデータベースがあります(30 GiBの圧縮ダンプサイズ、200 GiBのデータディレクトリ) データベースにETLを実行し、週に300万行近くをインポートします 最も頻繁に変更されるテーブルはすべてマスターテーブルから継承され、マスターテーブルにはデータがありません(データは週ごとに分割されます) 時間ごとのロールアップを作成し、そこから毎日、毎週、毎月のレポートを作成します スケジュールVACUUM ANALYZEがレポートに影響しているので、私は尋ねています。5時間以上実行されますが、通常のデータベースインポートに影響を与えていたため、今週2回停止する必要がありました。check_postgresデータベースの大きな膨張を報告しないため、それは実際には問題ではありません。 ドキュメントから、autovacuumはトランザクションIDのラップアラウンドも処理する必要があります。質問が立っています:私はまだ必要VACUUM ANALYZEですか?
38 postgresql  etl  vacuum 

4
SQL CLRスカラー関数を使用してHASHBYTESをシミュレートするスケーラブルな方法は何ですか?
ETLプロセスの一環として、ステージングからの行をレポートデータベースと比較して、データが最後に読み込まれてから実際に変更された列があるかどうかを確認します。 この比較は、テーブルの一意のキーと、他のすべての列のある種のハッシュに基づいています。現在HASHBYTES、このSHA2_256アルゴリズムで使用しており、多数の並行ワーカースレッドがすべて呼び出している場合、大規模サーバーではスケーリングしないことがわかりましたHASHBYTES。 96コアサーバーでテストする場合、1秒あたりのハッシュで測定されるスループットは、16を超える同時スレッドを増加させません。同時MAXDOP 8クエリの数を1〜12に変更してテストします。テストでMAXDOP 1は、同じスケーラビリティのボトルネックが示されました。 回避策として、SQL CLRソリューションを試したいと思います。要件を述べるための私の試みは次のとおりです。 関数は並列クエリに参加できる必要があります 関数は決定的でなければなりません この関数は、NVARCHARまたはVARBINARY文字列の入力を受け取る必要があります(関連するすべての列は連結されます) 文字列の一般的な入力サイズは、長さが100〜20000文字です。20000は最大値ではありません ハッシュ衝突の可能性は、MD5アルゴリズムとほぼ同等かそれ以上でなければなりません。CHECKSUM衝突が多すぎるため、機能しません。 この機能は、大規模なサーバーで適切にスケーリングする必要があります(スレッド数が増加しても、スレッドあたりのスループットが大幅に低下することはありません) Application Reasons™の場合、レポートテーブルのハッシュの値を保存できないと仮定します。これは、トリガーまたは計算列をサポートしないCCIです(他の問題もありますが、これには入りたくありません)。 HASHBYTESSQL CLR関数を使用してシミュレートするスケーラブルな方法は何ですか?私の目標は、大規模なサーバーでできる限り多くのハッシュを毎秒取得することであると表現できるため、パフォーマンスも重要です。私はCLRがひどいので、これを達成する方法がわかりません。誰かに答える動機があれば、できるだけ早くこの質問に報奨金を追加する予定です。以下は、ユースケースを非常に大まかに示すクエリの例です。 DROP TABLE IF EXISTS #CHANGED_IDS; SELECT stg.ID INTO #CHANGED_IDS FROM ( SELECT ID, CAST( HASHBYTES ('SHA2_256', CAST(FK1 AS NVARCHAR(19)) + CAST(FK2 AS NVARCHAR(19)) + CAST(FK3 AS NVARCHAR(19)) + CAST(FK4 AS NVARCHAR(19)) + CAST(FK5 …

5
メモリを使い果たすことなく、多くの挿入を含む大きなスクリプトを実行するにはどうすればよいですか?
質問: selectステートメントから約45,000の挿入があるスクリプトがあります。実行しようとすると、メモリが不足していることを示すエラーメッセージが表示されます。このスクリプトを実行するにはどうすればよいですか? コンテキスト: クライアントが使用する別のアプリでアプリを快適に動作させるために、いくつかの新しいデータフィールドが追加されました。 現在のデータ項目をこれらの新しいフィールドの値にマッピングしたデータでいっぱいのクライアントからデータのスプレッドシートを取得しました。 ステートメントを挿入するためにスプレッドシートを変換しました。 ステートメントの一部のみを実行すると機能しますが、スクリプト全体は機能しません。 いいえ。タイプミスはありません。 別の方法がある場合は、このデータをロードする必要がありますので、お気軽に私を責め、知らせてください。

7
オープンソース/無料のETLはありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 Pentahoがそれを購入してそれを呼ぶ前から、私はPentaho Data Integrationを使用していました。私は最後の無料版を持っています。 最近、彼らのウェブサイトにアクセスして、彼らが別のバージョンをリリースしたかどうかを確認するために、私のお気に入りのオープンソースetlがあまり開かれておらず、まったく無料ではないことを確認しました。 手頃な価格で使いやすいETLツールの代替案を知っている人はいますか?
26 etl 

3
ETLよりもELTプロセスを使用することに賛成する論点は何ですか?
私の会社では、ETL(extract-transform-load)プロセスを使用する代わりに、ELT(extract-load-transform)プロセスを使用していることに気付きました。 2つのアプローチの違いは何ですか?また、どの状況で一方が他方よりも「良い」でしょうか?いくつかの例を提供できれば素晴らしいと思います。

4
2つのテーブルを相互に検証する簡単な方法
ETLプロセスを行っています。すべてを言い終えると、同一のテーブルがたくさんあります。(2つの異なるサーバー上の)それらのテーブルが実際に同一であることを確認する最も簡単な方法は何ですか。私はスキーマとデータの両方を話しています。 個々のファイルまたはファイルグループでできるように、テーブルでハッシュを実行できますか?Red-Gateのデータ比較がありますが、問題のテーブルにはそれぞれ数百万の行が含まれているため、もう少しパフォーマンスの高いものが欲しいです。 私の興味を引く1つのアプローチは、組合声明のこの創造的な使用です。しかし、可能であれば、ハッシュのアイデアをもう少し詳しく調べたいと思います。 回答の更新後 将来の訪問者のために...ここに私が取った正確なアプローチがあります。これは非常にうまく機能し、各データベースのすべてのテーブルで実行しています。私を正しい方向に向けてくれた以下の回答に感謝します。 CREATE PROCEDURE [dbo].[usp_DatabaseValidation] @TableName varchar(50) AS BEGIN SET NOCOUNT ON; -- parameter = if no table name was passed do them all, otherwise just check the one -- create a temp table that lists all tables in target database CREATE TABLE #ChkSumTargetTables ([fullname] varchar(250), [name] …

2
ETL:200のテーブルから抽出-SSISデータフローまたはカスタムT-SQL?
私の分析に基づいて、データウェアハウスの完全な次元モデルでは、200を超えるソーステーブルから抽出する必要があります。これらのテーブルの一部は増分ロードの一部として抽出され、他のテーブルは全ロードになります。 注目に値するのは、すべて同じスキーマを持つ約225のソースデータベースです。 私が見てきたことから、OLE DBソースとOLE DB宛先を使用してSSISで単純なデータフローを構築するには、設計時に列とデータ型を決定する必要があります。つまり、最終的には抽出だけのために200以上のデータフローが発生することになります。 保守性の観点から、これは大きな問題として私を襲います。抽出コードに何らかの抜本的な変更を加える必要がある場合、200の異なるデータフローを変更する必要があります。 代替オプションとして、メタデータテーブルのセットから抽出するソースデータベース、テーブル名、および列を読み取る小さなスクリプトを作成しました。コードは複数のループで実行され、動的SQLを使用して、リンクサーバーとOPENQUERYを介してソーステーブルから抽出します。 私のテストに基づいて、これはまだOLEDBのソースと宛先でSSISデータフローを使用するほど高速ではありません。だから私は私がどんな種類の選択肢を持っているのかと思っています。これまでの考えは次のとおりです。 EZAPIを使用して、シンプルなデータフローでSSISパッケージをプログラムで生成します。抽出するテーブルと列は、前述の同じメタデータテーブルから取得されます。 サードパーティソフトウェア(動的データフローコンポーネント)を購入する これにアプローチする最良の方法は何ですか?.NETプログラミングに関しては、私は初心者なので、基本だけで立ち上がるのに必要な時間も心配です。

2
大量トランザクションおよびデータウェアハウジング用のPostgreSQL
PostgreSQLは非常に新しいので、これを使用して大規模な展開を行ったことはありません。しかし、私はエンタープライズソリューションの経験が豊富で、PostgreSQLを使用して学んだことの一部を試して適用したいと思っています。 大量のデータとトラフィックを処理できるサイズのサイトがあります。インフラストラクチャは、EC2インスタンスとEBSボリュームを使用してAmazon(AWS)で構築されます。 設計には、分析とレポートを処理するための2つのデータベース、メイントランザクションデータベースとデータウェアハウスが必要です。 メインのトランザクションデータベース ライブWebサイトに使用されます。サイトは複数のノードで構築され、同時ユーザーをスケールアップします。このケースでは、主にデータベースの読み取り操作が非常に高速であることが必要です。100GBを超えるデータで年間30%の成長が見込まれます。この時点で、2つのEC2サーバーを使用する予定です(必要に応じて後で追加します)。 私の質問、上記の要件の推奨設定は何ですか?さらに、テーブルとボリュームのパーティション分割を管理する方法はありますか?AWSセットアップの使用に関する推奨事項はありますか? データウェアハウスデータベース 主に、時間ディメンションでメインのトランザクションデータベースからすべてのデータをキャプチャするために使用されます。そのため、メインデータベースから削除されたレコードでもDWHにキャプチャされます。したがって、データは非常に大きくなり、成長はさらに大きくなります。必要に応じて、EC2インスタンスのカップル以上も使用します。 この場合の推奨設定は何ですか?定数書き込み(ETL)のため、高速書き込み操作が必要になります。PostgreSQLでOLAPキューブを構築できますか?はいの場合、誰かが試してみましたか? データベースに接続する Webサーバーはメインデータベースに接続してクエリと書き込みを行います。現在、接続にネイティブライブラリを使用するdjangoを使用するアプリケーションを開発しています。同じ基本的な方法を使用することをお勧めしますか?または、pgpoolを設定する必要がありますか? データウェアハウス(ETL) メインから読み取り、データウェアハウスに読み込むETLプロセスを構築するための推奨される方法は何ですか?ツールはありますか?従うべき方法論?PostgreSQLはETLプロセスの構築に役立つ機能/ツールを提供していますか?

4
SQL ServerのプログラムによるETLの標準言語/インターフェイスはありますか?
現在、データウェアハウス用のETLを作成しています。SSIS 2008を使用していますが、問題が発生しています。最大の問題は、コンポーネントの再利用の難しさです。テーブルごとに個別のパッケージがあり、各パッケージは親パッケージからいくつかの変数を入力として受け取ります。これらの入力変数に変更を加えるときは、各パッケージ(15ほどありますが、この数は大幅に増える予定です)に移動し、パッケージを変更してそれらの変更に対処する必要があります。他の問題もあります。たとえば、抽出のために任意のSQLを実行できない、ログ機能が不十分などです。 このプロセス全体は、コードでETLを開発し、コードの再利用、共通ライブラリ、より優れた単体テストなどを可能にする方法があれば、はるかに堅牢になります。SQLServerの事実上の標準ETL言語/ APIはありますか?GUIツールはできるだけ避けたいです。 編集:私は自分の経歴について述べるべきです。私はDBAではなく、正式な(または非公式の)DBAトレーニングを受けていません。基本的に、私はこれを理解していて、SSISで不適切なことを試みたり、このETLに近づいたりする可能性があります間違った角度から投影します。また、私は現在州政府で雇用されているため、新しいソフトウェアパッケージの購入を必要とするソリューションは、可能性の範囲内にありません。 これが私たちのタスクの1つです。単一のSSISパッケージを使用して、ウェアハウスの各テーブルをロードしています。各ファクトパッケージとディメンションパッケージは一般的に同じですが、 ソースデータベースからの抽出 データフローでの操作 宛先テーブルにマージします できること(SSISで実行するのが難しいと感じていること) テキストファイルから抽出クエリを読み込みます。開発者が抽出クエリを作成してテストする場合、SSISで実行する前にクエリを操作する必要はなく、クエリを切り取ってDBソースオブジェクトに貼り付ける必要もありません。 各コンポーネントを個別にテストします。他のテーブルのロードとは無関係に、個々のテーブルの完全なETLプロセスを分離してテストできるはずです。 1つの場所で共有ロジックを変更します。個々のパッケージを編集する必要はありません。すべてのパッケージが同じ方法でデータを監査テーブルにロードします。監査されてロードされたデータを変更したい場合、15個すべてのパッケージを編集する必要はありません(この数は時間とともにかなり大きくなります)。 プロセス全体は、共有コードを適切に使用してプログラム的に行うと、実装がはるかに簡単になり、より堅牢になると感じています。
10 sql-server  etl 

6
Redshiftでの次元モデリングとETL
私はデータウェアハウスの将来の代替品として、AmazonのRedshiftデータベースを調査しています。私の経験は常に次元モデリングとRalph Kimballの方法を使用してきたので、Redshiftが自動インクリメント列のシリアルデータ型などの機能をサポートしていないのを見るのは少し奇妙でした。 ただし、スタースキーマ用にRedshiftを最適化する方法についてのAWSビッグデータブログからのこの最近のブログ投稿があります:https : //blogs.aws.amazon.com/bigdata/post/Tx1WZP38ERPGK5K/Optimizing-for-Star-Schemas -Amazon-Redshiftでインターリーブされたソーティング Redshiftでスタースキーマをロードするためのベストプラクティスは何ですか?これがRedshiftのドキュメントで解決されていません。 私はS3からステージングテーブルにファイルをインポートし、SQLを使用してルックアップなどの変換を行い、宛先テーブルに挿入する前に代理キーを生成することに傾倒しています。 これは他の人が現在行っていることですか?これを簡単にするためのお金の価値があるETLツールはありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.