Как лучше всего моделировать продажи периодических c моментальных снимков с помощью Data Vaul 2.0? - PullRequest
0 голосов
/ 28 мая 2020

Наши источники данных - это агрегированные плоские файлы с продажами за день и ниже зерна.

T_date,     Store,  Consumer unit,  Reail Line Code,  Sales Amount,
20/05/20,   10,     1001,           80,               120,
20/05/20,   10,     1002,           80,               90,
20/05/20,   20,     1001,           80,               50,
21/05/20,   10,     1002,           80,               90,
21/05/20,   20,     1001,           80,               80,
21/05/20,   20,     1003,           90,               150,
21/05/20    30,     1001,           80,               180

Я пытаюсь смоделировать его со стандартами Data Vault 2.0. Это единственное решение, которое я могу придумать для заполнения хранилища необработанных данных. Я также пытался смоделировать продажи как HUB, но в итоге LINK и HUB держали одни и те же ключи.

CREATE TABLE hub_store
(
    hub_store_key VARCHAR(32)  NOT NULL PRIMARY KEY,
    store_name    VARCHAR(100) NOT NULL PRIMARY KEY
);

CREATE TABLE hub_consumer_unit
(
    hub_consumer_unit_key VARCHAR(32)  NOT NULL PRIMARY KEY,
    consumer_unit_code    NUMBER(4, 0) NOT NULL
);

CREATE TABLE hub_retail_line
(
    hub_retail_line_key VARCHAR(32)  NOT NULL PRIMARY KEY,
    retail_line_code    NUMBER(2, 0) NOT NULL
);

CREATE TABLE hub_date
(
    hub_date_key     VARCHAR(32) NOT NULL PRIMARY KEY,
    transaction_date DATETIME
);

CREATE TABLE lnk_day_store_sales
(
    lnk_day_store_sales_key VARCHAR(32) NOT NULL PRIMARY KEY,
    hub_date_key            VARCHAR(32) NOT NULL,
    hub_store_key           VARCHAR(32) NOT NULL,
    hub_consumer_unit_key   VARCHAR(32) NOT NULL,
    hub_retail_line_key     VARCHAR(32) NOT NULL
);

CREATE TABLE sat_day_store_sales
(
    lnk_day_store_sales_key VARCHAR(32)   NOT NULL,
    load_datetime           TIMESTAMP_LTZ NOT NULL,
    sales_amount            NUMBER(18, 2),
    CONSTRAINT pk_lnk_day_store_sales_key
        PRIMARY KEY (lnk_day_store_sales_key, load_datetime)
);

Есть ли другое решение для моделирования этого без изменения зернистости?

Спасибо!

...