Albus
12/1/2018 - 5:46 PM

CLICKHOUSE

CLICKHOUSE

CREATE TABLE IF NOT EXISTS goods
(
    eventdate DateTime DEFAULT now(), 
    sku UInt64, 
    pharmacynumber UInt16, 
    skuguid Nullable(UInt64) DEFAULT CAST(NULL, 'Nullable(UInt64)'), 
    description Nullable(String) DEFAULT CAST(NULL, 'Nullable(String)'), 
    producer Nullable(String) DEFAULT CAST(NULL, 'Nullable(String)'), 
    quantity Nullable(UInt16) DEFAULT CAST(NULL, 'Nullable(UInt16)'), 
    multiplier Nullable(UInt16) DEFAULT CAST(1, 'Nullable(UInt16)'), 
    price Nullable(Float32) DEFAULT CAST(NULL, 'Nullable(Float32)'), 
    ean13 Nullable(Int64) DEFAULT CAST(NULL, 'Nullable(Int64)'), 
    expiration Nullable(Date) DEFAULT CAST(NULL, 'Nullable(Date)'), 
    EventDate DateTime ALIAS eventdate, 
    EVENTDATE DateTime ALIAS eventdate, 
    event_date DateTime ALIAS eventdate, 
    EVENT_DATE DateTime ALIAS eventdate, 
    Sku UInt64 ALIAS sku, 
    SKU UInt64 ALIAS sku, 
    pharmacy_number UInt16 ALIAS pharmacynumber, 
    PHARMACY_NUMBER UInt16 ALIAS pharmacynumber, 
    PharmacyNumber UInt16 ALIAS pharmacynumber, 
    SkuGuid Nullable(UInt64) ALIAS skuguid, 
    SKUGUID Nullable(UInt64) ALIAS skuguid, 
    sku_guid Nullable(UInt64) ALIAS skuguid, 
    SKU_GUID Nullable(UInt64) ALIAS skuguid, 
    Description Nullable(String) ALIAS description, 
    DESCRIPTION Nullable(String) ALIAS description, 
    Producer Nullable(String) ALIAS producer, 
    PRODUCER Nullable(String) ALIAS producer, 
    Quantity Nullable(UInt16) ALIAS quantity, 
    QUANTITY Nullable(UInt16) ALIAS quantity, 
    Multiplier Nullable(UInt16) ALIAS multiplier, 
    MULTIPLIER Nullable(UInt16) ALIAS multiplier, 
    Price Nullable(Float32) ALIAS price, 
    PRICE Nullable(Float32) ALIAS price, 
    EAN13 Nullable(Int64) ALIAS ean13, 
    Expiration Nullable(Date) ALIAS expiration, 
    EXPIRATION Nullable(Date) ALIAS expiration
)
ENGINE = ReplacingMergeTree(eventdate)
PARTITION BY pharmacynumber
ORDER BY (pharmacynumber, sku)
SETTINGS index_granularity = 8192
CREATE VIEW IF NOT EXISTS price
(
    eventdate DateTime, 
    sku UInt64, 
    pharmacynumber UInt16, 
    skuguid Nullable(UInt64), 
    `unhex(description)` Nullable(String), 
    `unhex(producer)` Nullable(String), 
    quantity Nullable(UInt16), 
    multiplier Nullable(UInt16), 
    price Nullable(Float32), 
    ean13 Nullable(Int64), 
    expiration Nullable(Date)
) AS
SELECT 
    eventdate, 
    sku, 
    pharmacynumber, 
    skuguid, 
    unhex(description), 
    unhex(producer), 
    quantity, 
    multiplier, 
    price, 
    ean13, 
    expiration
FROM goods