問題タブ [datamart]
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.
data-warehouse - Datamart と Reporting Cube の違いは何ですか?
用語はいたるところで使用されており、明確な定義を知りません。私は、データマートが何であるかを知っていると確信しています。また、Business Objects や Cognos などのツールを使用してレポート キューブを作成しました。
また、データマートは単なるキューブの集まり以上のものであると言う人もいます。
また、データマートはレポート キューブであり、それ以上のものではないと言う人もいます。
あなたが理解している違いは何ですか?
database - 正しいデータがデータ マートにあることをどのように確認しますか?
私はデータ ウェアハウスに取り組んでおり、データ クレンジング (正規化) データベースからのデータがデータ マートに正しく組み込まれていることを確認する最善の方法を見つけようとしています。私はいくつかの検索を行いましたが、これまでの結果は、制約のようなものを確実に配置し、ETL プロセス中にデータの検証を行う必要があることを示しています (たとえば、日付が有効であるなど)。主キーを利用するか、非常に単純で検証可能なクエリを記述してデータを取得することが簡単にできたので、ディメンションは非常に簡単でした。ファクト テーブルはより複雑です。
何かご意見は?主題のエクスポートでいくつかのクエリを実行し、データ クレンジング データベースとデータ マートの両方からいくつかのデータを確認し、2 つを視覚的に比較してそれらが正しいことを確認できるように、これを非常に簡単にしようとしています。
sql-server - ディメンション テーブルの読み込み - 方法論
最近、EDW テーブルから Dim テーブルを設定する必要があるプロジェクトに取り組んでいます。
EDW テーブルは、履歴データを保持するタイプ II です。ソースが複数の EDW テーブルである場合もあれば、(属性で) 複数レベルのピボットを備えた単一のテーブルである場合もある Dim テーブルをロードする場合。
つまり、10 個のレコードが存在することになります。Dim で単一の行を作成するために、domain_code でピボットする必要がある属性ごとに 1 つです。これらの 10 個のレコードのうち、domain_code は同じで sub_domain_code が異なる属性がいくつかあるため、サブドメイン コードをさらにピボットする必要があります。
元:
ドメイン コードを取得した場合: 01,02, 03 => これはドメイン コードのストレート ピボットです。また、ドメイン コード: 10、サブドメイン コード / バージョンを 2006,2007,2008,2009 とします。
つまり、上記の属性を持つソース テーブルを 2 つに分割する必要があります => 1 つはドメイン コード用、もう 1 つは domain_code + バージョン用です。
ここまでは順調ですね。
Dim テーブルをロードする場合:
ディメンションの設計仕様 (元々はサード パーティによって作成されたもの) によると、彼らが求めているのは次のとおりです。
EDW(属性)のすべての変更に対して、関連するすべてのレコード(そのNKの)をアセンブルする必要があります。つまり、現在の他の属性値を持つ新しいレコードを意味します=>それらを処理して、新しいdimレコードを作成し、挿入します。
つまり、1 つの抽出に更新された 100 レコード (NK ごとに 1 つ) が含まれている場合、100 + (100*9) レコードを集めて、dim テーブルを挿入/更新する必要があります。このアプローチの良さ。
私がやろうとした他の方法は、NKが最近のレコード(変更されていない属性)の値を取得し、それを挿入して現在のレコードを更新するために、dimテーブルを検索することです。
1 つの属性の変更に対してソース側でレコードを組み立てるか、dim テーブルの最近のレコードを調べて処理するより良いアプローチは何でしょうか。
これが意味をなさない場合は、さらに詳しく説明したいと思います。
ありがとう
テーブルのモデルはこちら
sql-server - Microsoft環境で社内のマーケティングキャンペーンデータベースを作成するための提案はありますか?
マーケティングセグメント、リスト、キャンペーン、コミュニケーションデータを保存するための社内ソリューションを作成したいと思います。現在、一元化/標準化されているものはありません。データは、さまざまなSQLサーバー、Accessデータベース、およびExcelスプレッドシートにあります。レポート/追跡に関しては、本当に苦痛でした。
私はMicrosoftSQLServer環境にいて、次の場所にアクセスできます。
- Microsoft Access
- Microsoft SQL Server Management Studio
- Microsoftビジネスインテリジェンス開発スタジオ
私の環境では、セキュリティとコンプライアンスはかなり制限されています。サードパーティのソフトウェアパッケージを購入することは選択肢のようには見えません。使用するためにSQLサーバーサンドボックス環境を作成する可能性があります。
私はあなたがどのような提案をお勧めするのか、そしてその理由に興味があります。既存のデータの取得/解析(一部は継続的に)、新しいマーケティングデータマートへのデータのインポート、レポートなど、すべての側面について考える必要があります。現在、多くのデータを追跡/分類するためのGUIがないため、何らかのGUIが必要になる場合があります。他の1人の個人は、ワークロードの分散を支援するために定期的なインポートを支援するためにアクセスする必要がある場合があります。
ありがとう。
sql - 異なる列で繰り返される sum(x) の多くは、選択を遅くしますか?
数十の列と多数の行を持つ非常に大きなテーブルがあります。このテーブルを FT としましょう。毎日、FT テーブルからデータを読み取り、いくつかの計算を実行し、レポートの生成に使用する小さなテーブル (テーブル FA) を更新するスクリプトを実行します。
FA を更新するクエリは次のようなものです。
頻繁に sum(x) を使用するので、sum(x)、sum(y)、sum(z) で一時テーブルを作成し、それを使用して FA テーブルを更新すると速くなりますか?
olap - これはBIワークフローの適切なアイデアですか?
私はビジネスインテリジェンスに不慣れです。
私は、BIモジュールを実装して、Webソリューションを完成させるために会社に雇われました。たくさん読んだ後、私はBIプロセスがどのように見えるかについてのアイデアを得ることができたと思います。あなたは、BIプロセスについての私のアイデアを同封していることがわかります。
これがすべてのワークフローの正しいビジョンであるかどうかを教えてください。そうでない場合は私を訂正してください。別の質問ですが、スキーマ内のデータマイニングの場所がわかりません。必要に応じて、どこで使用すればよいですか?
どうもありがとう、
sql-server - 複数の外部システムから DataMart を構築する最良の方法は?
私は、メール/電子メール/SMS の連絡先情報と履歴用の SQL Server DataMart を構築する計画段階にあります。各データは、異なる外部システムにあります。このため、電子メール アドレスにはアカウント番号がなく、SMS 電話番号には電子メール アドレスがありません。つまり、共有の主キーはありません。一部のデータは重複していますが、重複が発生した場合に最も完全なバージョンを保持する以外にできることはあまりありません。
このデータを使用して DataMart を構築するためのベスト プラクティスはありますか? 外部キーごとに列を持つキー テーブルを作成することは、許容される方法でしょうか? 次に、一意のプライマリ ID を割り当てて、これを他の DataMart テーブルに関連付けることができます。
私がまだ考えていないかもしれないアプローチに関するアイデア/提案を探しています。
ありがとう。
database-design - OLTP アプリケーションでのビジネス レポート
Oracle Database 10g Enterprise Edition を使用する OLTP アプリケーションがあり、次のニーズを満たすビジネス レポート レイヤーを構築する予定です。
- 現在の OLTP データベース設計の複雑さを回避する
- 現在の OLTP レポートのクエリ パフォーマンスの向上
- 他のアプリケーションへの読み取り専用アクセスの提供
- ビジネス ユーザーがアドホック レポートを実行できるようにする
私たちが考えている解決策は、現在の OLTP で Oracle マテリアライズド ビュー (MV) を使用して DB キャッシュ レイヤーを作成することです。MV は非正規化され、レポート用に設計されます。MV ログは、増分更新を使用して MV への変更を同期します。
私の質問は、
- このアプローチは理にかなっていますか (MV)? OLTP レポート ソリューションを構築するために MV を使用した人はいますか?
- このアプローチ(MV)の欠点は何ですか?
- 同期を実行する手順を使用して、Oracle CDC とテーブルを使用するのはどうですか。
- 他のアプローチはありますか?
ありがとう、シェリー
python - DB2 DB から greenplum DB へのデータの転送
私の会社は [Greenplum] を使用してデータマートを実装することを決定しました。既存の [DB2] DB から Greenplum DB に転送されるデータ量の概算値は、約 2 TB です。
知りたいこと: 1) Greenplum DB はバニラ [PostgresSQL] と同じですか? (私は Postgres AS 8.3 で作業しました) 2) このタスク (抽出とインポート) に使用できる (無料の) ツールはありますか 3) Python の知識があります。合理的な時間内にこれを行うのは簡単ですか?
これを行う方法がわかりません。アドバイス、ヒント、提案は大歓迎です。
report - レポートにファクトテーブルを使用する必要がありますか?
レポート用のデータマートの構築に取り組んでいます。私はこの分野に不慣れで、助けを求めています。
ファクトテーブルと2つのディメンションテーブルがあります。ファクトテーブルには、主キーと2つのディメンションテーブルへの外部キー参照の3つのフィールドしかありません。2つのディメンションテーブルには、1)電話番号と2)内線番号に関連するデータがあります。(これらのディメンションテーブルは情報が異なるため、組み合わせることができません)
ご覧のとおり、私のファクトテーブルには定量的な列がありません。
電話番号と対応する内線番号を表示するレポートを生成したいと思います。
この情報は、2つのディメンションテーブルで結合を実行することで取得できます。
だから私の質問は、レポートにファクトテーブルを使用する必要がありますか?つまり、最初に電話番号テーブルからキーを取得し、ファクトテーブルで結合を実行し、拡張キーを取得して、拡張テーブルで結合を実行する必要がありますか?
また
この場合は可能であるため、2つのディメンションテーブルを結合してレポートを生成するだけですか?
ファクトテーブルを含める必要がありますか?
読んでくれてありがとう。
どんな助けでも大歓迎です。