問題タブ [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.
java - 単純な Java/Groovy と ETL ツール (Talend/etc) の比較 - どのライブラリを使用しますか?
表面上はTalendのようなETLツールに適しているように見える小さなプロジェクトがあるとします。
しかし、Talendを一度も使用したことがなく、さらに、一般的に「ビジュアルプログラミング」ツールを信頼しておらず、適切な言語とサポートの助けを借りて、すべてを昔ながらの方法でコーディングしたいと考えているとします (テキストは優れた IDE で!)。ライブラリ。
ETL ツールの誘惑や罠を回避するのに役立つ言語パターンとサポート ライブラリは何ですか?
database-design - 空のデータの問題 - データ層または DAL?
私は現在、新しいアプリを設計しており、次の質問についてよく考えています。私はウェアハウスから大量のデータを消費し、エンティティには多くのディクショナリ ベースの値 (通貨、国、税金などのデータ) - ディメンションがあります。null がないことは保証できません。だから私は考えています:
- 特別な keyID を使用して、各辞書に空の値を作成します。-1
- ETL(ssis)を実行し、正しいことを実行し、必要な場所に-1を挿入します
- -1 が特別であることを DAL に知らせます (Static const なんでも)
- ディクショナリ エントリの nullness をチェックするコードは気にしないでください。それらは常に値を持つためです。
しかし、多分私は考えるべきです:
- データをそのままインポート
- 空のレコード パターンを使用して DAL に考えさせる
- ビジネスレイヤーにはDALから必要なものがあるため、コードはまだ気にしません。
アプローチのほうが重要だと思いますが、ここで重要な何かが欠けているかもしれません... どう思いますか? 私の言いたいことが分かりますか?空のレコードの問題と混同しないでください。私は常に emptyCustomer think を使用し、他のデフォルトも使用します。
database - データ マートのファクト テーブルへの入力に関するアイデア
データ マートにファクト テーブルを作成するためのアイデアを探しています。私は次の次元を持っているとしましょう
- 医師
- 忍耐強い
- 日にち
- geo_location
- 患者_人口統計
- テスト
Pentaho と Oracle Warehouse Builder という 2 つの ETL ツールを使用して、ディメンション テーブルにデータを入力しました。日付、患者の人口統計、および地理的な場所は、運用ストアからデータを取得しません。すべてのディメンション テーブルには、独自の新しい代理キーがあります。
ここで、ファクト テーブルに患者の訪問の詳細を入力します。患者が特定の日に医師を訪問すると、彼は検査を注文します。これはファクト テーブルの情報です。簡単にするために省略している他の手段もあります。
ソース システムのファクト テーブルに必要なすべての列を含む 1 つの結合を作成できます。しかし、患者、医師、テストなどのディメンション テーブルからキーを保存する必要があります。これを達成するための最良の方法は何ですか?
ETL ツールはこれに役立ちますか?
ありがとうクリシュナ
java - 分散 ETL の質問
200 以上の分散システム (Windows、AS400、Linux など) 向けの ETL システムに関する推奨事項を探しています。
すべてのお客様から毎月データを収集し (システムの種類に関係なく)、データを持ち帰り、すべてをまとめて処理し、集計ソリューションをお客様に送り返します。私はこのシステムを自動化する任務を負っています - これを確実に行う方法についての提案はありますが、車輪の再発明は本当にしたくありません. 私はデータをプルしているシステムを所有していないため、このタスクはより困難になりましたが、クライアントをインストールすることはできます。
トランスポート用の FTP を使用して Java でクライアント/サーバー アーキテクチャのプロトタイプを作成しましたが、脆弱に感じます。さまざまなシステムの抽出/変換コードはすべて Java に既に存在することに注意してください (レガシーではありますが)。
現在は月に 1 回データを取得していますが、毎週に向けて取り組んでいます。
どんな洞察も高く評価されます。
sql - Teradata からタブ区切り形式で自動エクスポートを生成する最良の方法は?
基本的にテーブルまたはビュー (SELECT * FROM tbl) をテキスト形式でエクスポートするコマンドまたはバッチを実行してファイルを生成できるようにしたいと考えています (日付、数値などのテキストへのデフォルトの変換は問題ありません)。区切り、NULL は空のフィールドに変換されます (つまり、NULL 列ではタブ文字の間にスペースがなく、適切な行終端 (CRLF または Windows) があり、できれば列見出しも付いています)。
これは、SQL Assistant 12.0 で取得できるエクスポートと同じですが、エクスポート オプションを選択し、タブ区切り文字を使用し、NULL 値を '' に設定し、列見出しを含めます。
オプションの適切な組み合わせを見つけることができませんでした.最も近いのは、CAST と '09'XC を使用して単一の列を作成することです. さまざまなテーブルに対して大きな文字列を作成する必要はありません。
database - TransactionalFlatDBからファクトテーブルとディメンションテーブルにデータを入力するためのベストプラクティス
SSIS/SSASにスタースキーマ/キューブを入力したい。
すべてのディメンションテーブルとファクトテーブル、主キーなどを準備しました。
ソースは「フラット」(アイテムレベル)テーブルであり、私の問題は、それを分割して1つからそれぞれのテーブルに取得する方法です。
私はかなりのグーグルをしましたが、問題に対する満足のいく解決策を見つけることができませんでした。これはBI開発でかなり一般的な問題/状況であると想像できますか?!
ありがとう、alexl
postgresql - PostgreSQLからデータウェアハウスへ:ほぼリアルタイムのETL/データ抽出のための最良のアプローチ
バックグラウンド:
OLTP用に大幅に最適化されたPostgreSQL(v8.3)データベースがあります。
半リアルタイムでデータを抽出する必要があります(誰かが半リアルタイムの意味を尋ねる必要があり、答えは合理的に可能な限り頻繁に行われますが、ベンチマークが言うように、私は実用的です15分ごとに期待しています)そしてそれをデータウェアハウスに送ります。
どのくらいのデータ?ピーク時には、OLTP側に到達する1分あたり約80〜100k行を話しますが、オフピーク時には、これは15〜20kに大幅に低下します。最も頻繁に更新される行はそれぞれ最大64バイトですが、さまざまなテーブルなどがあるため、データは非常に多様で、1行あたり最大4000バイトの範囲になります。OLTPは24時間365日アクティブです。
最善の解決策?
私がまとめることができるものから、最も実用的な解決策は次のとおりです。
- TRIGGERを作成して、すべてのDMLアクティビティを回転するCSVログファイルに書き込みます
- 必要な変換を実行します
- ネイティブのDWデータポンプツールを使用して、変換されたCSVをDWに効率的に送ります
なぜこのアプローチ?
- トリガーを使用すると、システム全体ではなく、選択したテーブルをターゲットにすることができます。+出力は構成可能(つまり、CSVに)であり、作成と展開が比較的簡単です。SLONYは同様のアプローチを使用しており、オーバーヘッドは許容範囲内です
- CSVを簡単かつ迅速に変換
- CSVをDWに簡単に送り込む
検討された代替案...。
- ネイティブロギングの使用(http://www.postgresql.org/docs/8.3/static/runtime-config-logging.html)。これに関する問題は、私が必要としていたものに比べて非常に冗長に見え、解析と変換が少し難しいことです。ただし、TRIGGERに比べてオーバーヘッドが少ないと思われるため、より高速になる可能性があります。確かに、システム全体であるため、管理が容易になりますが、ここでも、一部のテーブルは必要ありません(一部は、ログに記録したくないJMSメッセージの永続ストレージに使用されます)
- TalendなどのETLツールを介してデータを直接クエリし、それをDWに送り込む...問題は、これをサポートするためにOLTPスキーマを微調整する必要があり、多くの悪影響があります。
- 微調整/ハッキングされたSLONYの使用-SLONYは、変更のログ記録とスレーブへの移行を適切に行うため、概念フレームワークは存在しますが、提案されたソリューションはより簡単でクリーンに見えます
- WALの使用
誰かがこれを以前にやったことがありますか?あなたの考えを共有したいですか?
mysql - WAN を介した MySQL から SQL Server への ETL メカニズム
外部ホストを使用して MySQL Community Server 5.1.32 から VPN 経由で内部 SQL Server 05 Enterprise マシンにデータをバッチ処理するメカニズムに関するフィードバックを探しています。外部ボックスは、営業時間中 (1 日あたり約 100Mb) のデータを蓄積し、BI 作業を行う前に、WAN 接続を介して国際的に転送する必要があります (品質はまだ決定されていませんが、超高速にはなりません)。行った。これは、毎晩進行中の変更セットであるべきです。
私は、人々が以前に同様のシナリオで成功裏に使用した ETL メカニズムについての考えに興味があります。SSIS は有力な候補のようです。このシナリオの適合性について誰かコメントできますか? あるいは、コストを意識した方法でこれを行う方法についての他の考えが最も高く評価されます. ありがとう!
python - Python-CSV:さまざまな長さの行を持つ大きなファイル
つまり、行の長さが異なる20,000,000行のcsvファイルがあります。これは、古風なデータロガーと独自のフォーマットによるものです。最終結果は、次の形式のcsvファイルとして取得されます。私の目標は、このファイルをpostgresデータベースに挿入することです。どうすれば次のことができますか?
- 一貫性のあるCSVファイルを作成するために、最初の8列と最後の2列を保持します
- csvファイルの最初または最後の位置に新しい列を追加します。