問題タブ [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.
azure - SQL データ ウェアハウスの一括コピー中にパニックが発生する
go-mssqlドライバーを使用して Azure SQL Datawarehouse にデータを書き込んでいます。
一括コピー機能を使用してデータを書き込むと、ランダムにパニックがスローされます (少なくとも、この問題を確実に再現することはできませんでした)。
エラーは
何が起こっているのか誰にも分かりませんか?
おそらくこれは並行性に関連しているのではないかと考えましたが、単一の go ルーチンのみを実行することで除外しました (最初は 3 つの go ルーチンでした)。
何らかの理由で、これはすべてではなく一部のバッチ挿入で発生しているようです。
バッチサイズとも関係ありません。このパニックで 1161 行のバッチが失敗している間に、1500 行のバッチが通過しました。
編集:
挿入を手動で 1000 にバッチ処理することで、これを回避しました。
ただし、スループットが非常に制限されるため、これはあまり実用的なソリューションではありません。
コード :
これについては、問題をカバーするテストショーで github の問題が提起されています。
sql-server - ファクト ディメンション DWH 設計でシステム バージョン管理されたテンポラル テーブルを使用することは可能ですか?
DWH システムに SCD type2 履歴ディメンション テーブル (または、SCD type2 属性を持つテーブルと言うべきか) を実装したいとします。これは、今のところnatural key
+ primary surrogate key
+ datefrom
+ dateto
+iscurrent
列を追加した「通常のテーブル」として実装しています。
どこ
- これ
primary surrogate key
は、すべてのファクト テーブルで外部キーとして使用するために必要です。 datefrom
+dateto
+iscurrent
列は履歴を追跡するために必要です。
ここで、ファクト ディメンション DWH 設計でシステム バージョン管理されたテンポラル テーブルを使用したいと考えていますが、MSDNは次のように述べています。
現在のテーブルと履歴テーブルの間でレコードを関連付けるためには、テンポラル テーブルに主キーを定義する必要があります。履歴テーブルに主キーを定義することはできません。
したがって、「オンザフライ」または別のETLプロセスを生成するビューを使用する必要があるように見えますがprimary surrogate key
、両方のアイデアが好きではありません...
たぶん別の方法がありますか?