私はほぼリアルタイムのdwhを作成しようとしています。私の最初の試みは、私のDWHから私のアプリケーションにテーブルをロードする15分ごとです。リアルタイムプロセスをどのように削除するのですか?
ほぼリアルタイムのDWHが直面する可能性のある問題をすべて回避したいと思います。これらの問題の1つは、複数選択htmlタグの値を示す空のテーブルを照会することです。
これを解決するには、次の解決策を考えましたが、この種の問題を解決する標準が存在するかどうかはわかりません。私は、ETLプロセスで行を挿入
UPDATE providers set my_flag=1
:私はこのような表を更新、挿入する前に
CREATE TABLE providers (
provider_id INT PRIMARY KEY,
provider_name VARCHAR(20) NOT NULL,
delete_flag INT NOT NULL
)
:
は、私は複数選択の可能な値を保存するには、このようにテーブルを作成しますこのように:
INSERT INTO providers (provider_name, delete_flag) VALUES ('Provider1',0)
私のアプリから私はこのようなテーブルをクエリ:
アプリがまだ動作していて、重複することなくすべてのプロバイダを選択している間(ソースは1つのプロバイダを削除、追加または更新できるので、常にソースを尊重しなければならない)、テーブルが空であるため、ちょうどINSERT文の後にこの文を実行することができます。
DELETE FROM providers WHERE delete_flag=1
は、私は、これはいくつかの変更と小さなテーブル、または大きなテーブルのための良い解決策だと思いますが、表が大きい場合どうなりますか?この種の問題を解決するためにいくつかの標準が存在しますか?
私たちはデータを更新しているため、ユーザーの利便性を損なうことはありません。
あなたの最初の解決策は良いです。しかし、SQLサーバーでは、コミットステートメントをアクティブ化する必要があります。デフォルトでは、コミットが行われます。 2番目の解決策は私がコンセプトを理解していますが、ここでパーティションの機能は何ですか? – Maik
パーティションは技術的な理由から使用されます。あなたは、テーブルを持つテーブルではなく、テーブルに対してパーティションを切り替えることができます。ドクをチェックしてください。 –
あなたの答えをありがとう! – Maik