問題タブ [sql-data-warehouse]
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 - キー FACT\DIM テーブルを初期化するときに参照整合性を保持する方法
私が働いている場所では、必要に応じて、Fact\ Dimension テーブルを初期化 ("INIT" => 切り捨て & ロード) します。
このような「INIT」では、RI (参照整合性) を維持するために、初期化されたオブジェクトを参照するすべてのオブジェクトを後で初期化する必要があります。
例 – 各レコードの発効日を変更する属性が豊富な (~25) SCD Dim_Employees にバグが見つかりました。これには、すべての参照オブジェクトが外部キーを再計算する必要があります。
あなたは同じ状況にありますか? もしそうなら、どのように対処しますか?
sql - 複数行の原因となる Snowflake スキーマ
私はデータ ウェアハウスを作成しており、会社 -> セクター -> 組織があります。
三次元を作りました
一部のセクターは会社全体で共有されているためです。
これにより、Org ディメンション テーブルと Fact テーブルで重複が発生しています。
各行ではなく、セクター名が変更された場合にのみセクターキーを生成できる方法です。
sql - 時間範囲内のエントリをカウントするための柔軟な実行ウィンドウ
フィールドにいくつかのデバイスがあり、時々接続が失われて GSM でデータを送信しています。ディスク容量が限られているため、接続されていない期間に一部のデータが失われる傾向があるため、保留中のデータの量を評価して、状況の洞察を得るのが好きです.
サーバーのテーブルを必要な列に減らすと、次のようになります。
タイムスタンプ (最初の列) の値はサーバーで作成され、lastchanged (2 番目の列) はデバイスからのタイムスタンプであるため、違いは明らかに送信プロセスによる遅延です。
デバイスのすべてのセンサーから個別のエントリを取得するため、行をカウントして、特定の時間範囲内にデバイスに保存されたデータポイントの数を把握する必要があります (これは、デバイスの動作によって異なります)。 .
ここで、タイムスタンプごとにグループ化して、このタイムスタンプごとに、作成済みでサーバーに到達していないデータセットの数を評価します。
したがって、タイムスタンプごとに、データセット内の行の量を知りたいと思います。これには、将来のタイムスタンプがありますが、過去に変更されたものがあります。
私のデータセットは非常に大きいので、フェッチは避けたいと思います。
はい、これはインタイム分析ではありません。デバイスの動作を理解し、いくつかのパラメーターを調整するために必要なだけです。
私はすでにこれを試しました:
また、フィルタリングとカウントを 1 つのステップで行う必要があるため、CTE とサブクエリは役に立たないと考えています。そして、私が理解しているように、SQL で実行されている従来のウィンドウでは、ウィンドウ範囲の一定量のエントリが必要ですが、私のデータセットでは、この数はまったく一定ではありません。
上記の例に適用すると、結果は間違っています。
azure - レプリケートされたテーブルのレプリケーションを強制する
テーブルのいくつかは REPLICATE 型です。データのクエリを開始する前に、これらのテーブルを実際に (保留中でなく) 複製する必要があります。これにより、データの移動を回避できます。
オンラインで見つけたスクリプトを持っています。これはループで実行され、レプリケーション用に設定されたすべてのテーブルで SELECT TOP 1 を実行しますが、スクリプトが数時間実行されることもあります。foo から SELECT TOP 1 を実行しても、サーバーがレプリケーションをトリガーしない場合があるように見えるかもしれません。
SQL Datawarehouse に強制的にレプリケーションを完了させるにはどうすればよいですか?
スクリプトは次のようになります。