問題タブ [scd]
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.
mfc - mfc アプリケーションで .scd データ ファイルを読み取る方法
pendriveの登録キーを使用して、3つのCDからアプリケーションを購入してインストールしました。インストール後、MFC アプリケーション (.exe) を取得しました。ファイルを表示すると、データ フォルダーが見つかり、その中に多くの .scd ファイルが見つかりました。アプリケーション内でデータにアクセスできます。
今、その scd ファイルを抽出し、それらのデータだけを個別に必要とします。
FileViewPro、Scribus、および多くのexeリーダーソフトウェアで試しましたが、成功しませんでした.
.scd ファイルを読み取ってデータを抽出する方法を教えてください。
前もって感謝します、
mysql - SQLでSCDを実行するための一般的な手順
mssqlサーバーに2つのテーブルがあります。カスタムの挿入/更新/削除およびMergeステートメントを介してscdを実行できます。
目的を達成できる一般的な手順があることを知りたいです。2つのテーブルを渡すだけで、SCDを形成するはずです。SQL Server 2008のオプションはありますか?ありがとう
sql - ゆっくりと変化するディメンションは常に更新されます
description
のデータ型で呼び出されるフィールドを持つロードするディメンションがありVARCHAR(50)
ます。その照合順序は SQL_Latin1_General_CP1256_CS_AS であり、"مرگالعقبة" などのアラビア語データが含まれています。ソースの型、サイズ、照合は同じですが、ディメンションをロードするたびにこのフィールドが更新されます! なぜこれが起こるのですか?
ssis - データを日付で分割
新規採用と退職を報告する HRIS プロジェクトの .CSV ファイルをインポートしています。次の日付を示すレポートが 1 つあります。
Term の日付を持つ人々が 1 つの DB に入り、NewHire の日付を持つ人々が別の DB に入るように、日付を分割したいと考えています。
条件付き分割が答えだと思いますが、うまくいかないようです。私はそのように条件を設定しました:
また、ゆっくりと変化する次元についても考えました。Hire/Fire Report からの情報を参照するすべての従業員情報を含む従業員テーブルを作成し、任期日を持つ従業員 (リレーションとして従業員番号を使用) に任期日を追加します。
私がどのように成長すべきかについての考えは大歓迎です。
mysql - 行バージョン管理された MySQL テーブル (SCD タイプ 2) で主キー、自動インクリメント、およびインデックスを設定する方法は?
プロジェクトでは、MySQL データベースに行のバージョン管理を実装する必要があります。考えられる解決策について読んだ後、1 つのテーブルを使用し、そのバージョン/行がいつアクティブであったかを指定する列を追加することstart_date
にしました。end_date
id
列は、行の複数のバージョンで同じになります。したがって、テーブル内で一意ではなくなります。id
列の自動インクリメントを有効にしたまま、主キー (およびその他のインデックス) を設定する方法がわかりません。
2 つの選択肢があります。最初のものは、次id
のように単なるインデックスを作成しています:
もう 1 つは、次のように主キーを作成することid
ですstart_date
。
特にパフォーマンスを考慮した場合、どのオプションが最適でしょうか?
たとえば、データは次のようになります。
この場合、「Jonathn」を追加しましたが、後で「Jonathan」に変更しました (同じ ID を保持したまま)。その後、別の行 ("James") が追加されます。
data-warehouse - 時間の経過とともにマージされるエンティティを持つタイプ II SCD
営業所を表すディメンションがあるとします。オフィスが移動する可能性がありますが、これはタイプ II の変更になります。古いオフィスの場所で行われた操作と、現在新しい場所で行われている操作を追跡し、変更がいつ発生したかを知りたいと考えています。これまでのところ、標準的なタイプ II のデザインだけです。ここで、オフィスが別のオフィスと合併するとしましょう。つまり、元々は別個の 2 つのオフィス (「親オフィス」) の運用活動が、現在は 1 つのオフィス (「合併オフィス」) で行われています。または、ビジネスの観点から、前の 2 つのオフィスの継続である完全に新しいオフィスである可能性があります。
レポート/分析要件は次のとおりです。
- 新しい統合されたオフィスの現在の活動をすべて確認できるようにしたいと考えています。
- 合併したオフィスまたは親オフィスがこれまでに行ったすべての活動を確認できるようにしたいと考えています。
- 合併前と合併後の両方で親オフィスの 1 つで発生したアクティビティを、他の親オフィスのアクティビティ (少なくとも合併前) を表示せずに経時的に表示できるようにしたいと考えています。
これを SCD タイプでモデル化する方法がわかりません。単純に 2 つの親オフィス エントリを 1 つの新しいエントリに置き換え、それに応じてすべてのファクト テーブルを更新すると、タイプ I が変更されます。これにより、現在のアクティビティを問題なく確認できますが、履歴は失われます。記録を別々に保管すると、合併についてはわかりません。合併したオフィスを表す 3 番目のレコードを追加すると、履歴も失われます (親オフィスのどちらの自然キーも適切ではないでしょう)。
ブリッジ/多対多テーブルを使用する必要がありますか? それは私が避けたい複雑さをもたらします。ただし、それが最善の方法である場合は、そうしてください。ただし、それがどのように構造化されるかはまだわかりません。おそらく、ファクト テーブルはオフィス エントリを指し、オフィスは多対多の方法でグループ化されます。レポートは、オフィス ディメンションに直接ではなく、グループに基づいて行われます。
ElectricLlama の質問への回答
- ほとんどのユーザー インタラクションは既定のレポートを介して行われるため、基礎となる構造の複雑さはレポートから隠されます。
- 一部のユーザーは、SQL または SAS を使用してデータを取得します。現時点では、彼らがこの特定の問題を気にする可能性はほとんどありませんが、これらのツールを使用するユーザーが増えるにつれて、状況が変わる可能性があります.
- 現時点では、クエリ ライターはありません。
- 複数レベルの合併があるとは思いませんが、絶対にノーとは言えません。あったとしても、私は驚くだろう。
- この種のことをエンドユーザーにとって簡単にする方法がわかりません。これは、いくつかの要件を緩和するのに十分な議論かもしれません。
sql - データ ウェアハウス - 多対多の関係でゆっくりと変化するディメンション
例として、2 つのディメンションと 1 つのメジャーを持つファクト テーブルがあるとします。
FactMoney テーブル
ProjectKey int
PersonKey int
現金金額のお金
2 つの次元は次のように定義されます。
DimProject (タイプ 0 ディメンション - つまり静的)
ProjectKey int
プロジェクト名 varchar(50)
DimPerson (緩やかに変化するタイプ 2 ディメンション)
PersonKey int
PersonNaturalKey int
個人名 varchar(50)
有効開始日日時
有効終了日日時
IsCurrent ビット
これまでのところかなり簡単です。ここで、個人カテゴリの概念を紹介します。
DimCategory
カテゴリキー int
カテゴリ名 varchar(50)
DimPerson と DimCategory の間に M2M 関係を構築します。
BridgePersonCategory
PersonKey int
カテゴリキー int
つまり、人々は 1..n のカテゴリを持つことができます。
私の問題は、人はゆっくりと変化するディメンションであるため、人の名前が変更されると、新しい人の行を追加し、発効日を更新して現在のフラグであるため、大したことではありません。
しかし、個人のカテゴリをどうするのでしょうか? 新しい人のバージョンがポップアップするたびに、ブリッジ テーブルに行を追加する必要がありますか?
当然のことながら、個人のカテゴリが変更された場合、それは個人テーブルに新しい行を作成する必要があるということでしょうか?
ssis - ゆっくりと変化するディメンションの System::CreationDate は、ssis パッケージが作成された日付と関係がありますか?
SCD に接続された OLE DB ソースで構成される SSIS パッケージを作成しました。SCD内で、「開始日と終了日を使用して現在および期限切れのレコードを識別する」のラジオボタンにチェックを入れました
開始日列: RecordStartDate 終了日列: RecordEndDate
日付値を設定する変数: System::CreationDate
今日 (2013 年 11 月 5 日) ETL を実行し、ETL の実行後に宛先テーブルを確認するとします。RecordStartDate は、SSIS パッケージを作成した日付 (2013 年 10 月 18 日) を使用します。ETL が実行された日付をパッケージで使用するべきではありませんか? 私が間違っている場合は修正してください。