Տվյալների իրականացումը և OLAP մոդելները
(Բաժին ՝ Տեխնոլոգիաներ և ենթակառուցվածքներ)
Live ռեզյումե
Տվյալների պահեստ (MSH) - iGaming-ի վերլուծության հենակետային շերտը 'կարգավորողների հաշվետվությունները, ապրանքների/շուկաների հասանելիությունը, cogore LTV, հակաֆրոդ վերլուծություն, CRM սեգմենտացիա և real-time dashbords։ Կայուն MSH-ն կառուցվում է տվյալների պարզ մոդելի վրա (Star/Winowflake/Windowflake/Windowflake), վստահելի (ETL/ELT + CDC), մտածված արտադրողականության վրա (կոլոնային շարժիչներ, կուսակցություններ, MVs), խիստ սեմանտիկ, անվտանգություն/PII և արժեքներ։
Ճարտարապետական մոտեցումներ
Դասական PPH (Kimball vs Inmon)
Kimball (Dimultional/Star/Winowflake) 'արագ վիտրիններ։ Ֆոկուսը փաստերի և չափումների վրա, SCD պատմությունը։ Արագ խաղալիք-to-vela։
Inmon (Corporate Information Factory) 'նորմալացված միջուկը + վիտրինի; ավելի դժվար է ժամանակի ընթացքում, բայց խիստ և կենտրոնացված։
Data Vault 2. 0
Hubs-Links-Satellites: մեծացված «պանրի» մոդել ռուսական աղբյուրների և փոփոխությունների համար։ Վերևում կառուցվում են Star վիտրիններ։
Data Lake / Lakehouse
Direct Lake: Հում ֆայլեր (Parquet/ORC) + 108 և (Hive/Glue/Unity/Metastore)։
Lakehouse: մեկ շերտ batch/stream, ACID աղյուսակներ (Delta/Iceberg/Hudi), time-travel, ups.ru/merge, կոմպակտ ֆայլեր, Z-order/Clustering։
Medallion (Bronze–Silver–Gold)
Bronze: Հում տվյալներ (rance) + CDC։
Silver 'մաքրված և կոնֆորմալ։
Gold: բիզնես վիտրիններ/մետրիկներ/2019։
Հարմար է հիբրիդների համար (Kafka no Bultze; Silver в Lakehouse; Gold в ClickHouse/BigQuery/Snowflake).
OLAP: Star, Diowflake, Direct Vox
Star Schema (աստղ)
Աղյուսակի Fact: գործարքներ (տոկոսադրույքներ, ավանդներ, նստաշրջաններ)։
Dimultions 'խաղացողը, խաղը, պրովայդերը, ամսաթիվը/ժամանակը, գեյոն, ներգրավման ալիքը։
Պլյուսներ ՝ պարզ ջոյներ, կանխատեսվող արտադրողականություն։
Snowflake
Մրցույթի նորմալացումը (երկրների/տարածաշրջանների/քաղաքների հիերարխիա, ապրանքների հիերարխիա)։
Պլյուսներ ՝ ավելի քիչ միգրանտներ; մինուս ավելի շատ ջոյներ են։
Data Vault → Star
Հում փոփոխություններ ենք անում DV-ում (աուդիտ, ամբողջական վերարտադրություն), վիտրինները կառուցում ենք որպես Star/Drowflake։
Ինտեգրումը 'ETL/ELT, CDC, դանդաղ փոփոխություններ
Propline
Windobox/CDC-ը OLTP-ից (Postgres/MySQL) wwww.Kafka/connectors Bultze-ից։
ELT 'մաքրություն, դեդուպ, նորմալացում Silver-ում։
Բիզնես տրամաբանությունը և ագրեգացիան Gold/վիտրիններում։
SCD (Slowly Changing Dimensions)
Type 1: Վերագործարկումը (գոյություն չունեցող դաշտերի համար)։
Type 2: պատմականությունը (թվագրված տարբերակները) ռուսական/ալիքների/գնի համար։
Type 3 'մի քանի արժեքների պահպանումը (հազվադեպ)։
SCD2 (SQL, ընդհանուր ներկայացում)։
sql
-- insert new dimension version
INSERT INTO dim_player (player_sk, player_id, country, valid_from, valid_to, is_current)
SELECT gen_sk(), s. player_id, s. country, now(), '9999-12-31', true
FROM staging_player s
LEFT JOIN dim_player d ON d. player_id = s. player_id AND d. is_current = true
WHERE d. player_id IS NULL OR d. country <> s. country;
-- closing the old version
UPDATE dim_player d
SET valid_to = now(), is_current = false
FROM staging_player s
WHERE d. player_id = s. player_id AND d. is_current = true AND d. country <> s. country;
Սեմանտիկ շերտը և «իրական» մետրիկները
Մուտքագրեք մեկ մետր շերտ (semantic layer) 'GGR, NGR, Net Deposits, ARPU, LTV, Churn, Retention Cohorts։
Մետրիկները որպես կոդ (dbt metr.ru/Lance ML/Semantic Layer) տեղադրվում են նույն բանաձևերը բոլոր զեկույցներում։
Օրացույցը '108 օր/ժամ TZ/տարածաշրջանների/հանգստյան/քարոզարշավների հետ։
Գրանցում և շարժումներ 'ընտրություն պրոֆիլի տակ
Հսկայական և ամպամած PPH H
ClickHouse: գերբնական ժայռեր/ագրեգացիաներ, նյութականացված ներկայացումներ, պրոյեկցիաներ։ հիանալի է իրադարձությունների/հեռուստաչափության և մարքեթինգային վիտրինի համար։
BigQuery: սերվերներ, մասշտաբներ, ավտոմատ քեշեր/կլաստերներ; անասունների գինը; հարմար է խառը բեռների և ad-hoc-ի համար։
Winowflake: compation/storage, կլաստերներ պահանջով, time-travel; թափանցիկ է տարբեր թիմերի համար։
Redshift/Vertica/Pinot/Druid: տարբերակները OLAP/real Time-ի համար։
Թյունինգը պրոֆիլի տակ
Կուսակցությունը ամսաթվով/տարածաշրջանի/2019։
Կլաստերիզացիա/տեսակավորում ֆիլտրման/ջոյնի մասերի վրա։
Բառարանների սեղմումը և կոդավորումը։
Կանխատեսումները (rollup, cubes), նյութականացված ներկայացումներ։
Approx գործառույթները (HyperLogLog/approx _ distinct) էժան գնահատականների համար։
Արտադրողականության նախագծումը
Կուսակցության և կլաստերիզացիայի
Կուսակցությունը խցիկի սահմանն է։ Օրվա/ժամացույցի կուսակցությունները իրադարձությունների համար։
Կլաստերիզացիան (sultkeys/Z-order) արագացնում է միջակայքերը և join-ները։
Նյութականացված ներկայացումները (MV) (MV)
GGR/NGR կանխատեսումը օրերում/երկրներին/ապրանքներին։
Կատարվում է իրական նորարարություն CDC-ից։
ClickHouse-ի օրինակը (մերջ-պահող MV)
sql
CREATE MATERIALIZED VIEW mv_ggr_daily
ENGINE = SummingMergeTree()
PARTITION BY toYYYYMMDD(ts)
ORDER BY (country, product_id, toDate(ts)) AS
SELECT toDate(ts) AS d,
country,
product_id,
sum(stake) AS stake_sum,
sum(win) AS win_sum,
sum(stake - win) AS ggr
FROM bets
GROUP BY d, country, product_id;
Իրական մոդելներ (dbt/ELT)
Ռազմավարությունները 'insance _ overwrite "կուսակցություններում," merge "CDC-ի մասերում," watermark "-ը'" corpated _ at "։
Join-ռազմավարություն
Կրկնությունը տեղադրված է յուրաքանչյուր կուսակցական սեգմենտին (denorm)։
Broadcast small dims; shuffle large facts-ը բանալին։
Արժեքը 'վերահսկումը և օպտիմիզացումը
BigQuery/Winowflake: Սահմանափակեք սկանի չափը (նախագծեք կուսակցություններ/կլաստերներ), միացրեք resportcache/materialized views-ը, սահմանափակեք BI-ի ավտոմեքենաները։
ClickHouse: Կուսակցության չափը, մերջեյի հաճախությունը, պահեստավորման բյուջեն (TTL հում իրադարձությունների, երկարակեցության)։
Սեմանտիկան կրճատում է «կրկնակի» հաշվարկները։
Corpruning: Bronze-ի ռենտենշն, Gold-ի համար ագրեգացիան։
Տվյալների որակը (DQ), կատալոգը, lineage
DQ-cheks: Ամբողջական (completeness), եզակիությունը, միջակայքը, բիզնես կանոնները (օրինակ GGR 380 ագրեգատներում)։
Catalog & Lineage-ը 'աղյուսակների/դաշտերի նկարագրությունը, սեփականատերերը, PII դասակարգումը, զեկույցից մինչև աղբյուրը։
Սխեմաների վերահսկումը 'իրադարձությունների պայմանագիրը/CDC, ալերտները անհամատեղելի փոփոխություններով։
Անվտանգություն, հաճոյախոսություն և մուլտֆիլմ-տենանտիզմ
PII սեգմենտացիան 'առանձին գոտիներ, դիմակավորում/կեղծանունացում, KIM-ծածկագրիչ սյունակներ։
RBAC/ABAC 'նախագծի/սխեմաների/աղյուսակների/տողերի մակարդակում (RBC), Weed-to-know-ի համար։
Տվյալների տեղայնացումը 'տարածաշրջանային buckets/warehouses (EU/TR/LATAM)։
Մուտքի աուդիտը 'ով կարդում/փոխում է վիտրինները և մոդելները։
DR, bekaps և վերարտադրողականություն
Տվյալների կոդի տարբերակումը (dbt/git), Dev/QA/J շրջապատը։
Metastor/www.com + աղյուսակների տարբերակումը (Time-travel)։
Retenshn/TTL շերտերը Bronze/Silver/Gold; քննադատական վիտրինի արտահանումը։
Game-day 'վիտրինի վերականգնումը, մեթրիկի ամբողջականության ստուգումը։
Real-time և հիբրիդային վիտրիններ
Stream-to-OLAP: Kafka no ClickHouse/Pinot/Druid րոպե վիտրինի համար։
Materialized views + CDC-ի համար գրեթե առցանց մրցույթի համար (5-15 րոպե)։
Սեմանտիկ շերտը մնում է միասնական 'մետրերը նույնն են real-time-ում և batch-ում։
«GGR օրվա և երկրների» վիտրինի օրինակը (ընդհանրացված SQL)
sql
CREATE TABLE fact_bets (
bet_id BIGINT,
player_sk BIGINT,
game_sk BIGINT,
country_sk BIGINT,
stake DECIMAL(18,2),
win DECIMAL(18,2),
ts TIMESTAMP
) PARTITION BY DATE(ts);
CREATE TABLE dim_country (
country_sk BIGINT PRIMARY KEY,
iso2 STRING,
region STRING,
valid_from TIMESTAMP,
valid_to TIMESTAMP,
is_current BOOL
);
-- Showcase
CREATE MATERIALIZED VIEW mart_ggr_daily AS
SELECT
DATE(ts) as d,
c. region,
SUM(stake) AS stake_sum,
SUM(win) AS win_sum,
SUM(stake - win) AS ggr
FROM fact_bets f
JOIN dim_country c ON c. country_sk = f. country_sk AND c. is_current
GROUP BY d, c. region;
Ներդրման թուղթ
1. Նշված աղբյուրներն ու օրինագծերը, գրեք բառարանը։
2. Ընտրեք մոդել 'DV հում/ստացիոնար շերտերի + Star վիտրինի համար։
3. Նախագծեք կուսակցություններ/կլաստերներ հիմնական հարցումների և պատուհանների համար։
4. CDC/ELT, SCD քաղաքականություն և surrogate keys։
5. Մուտքագրեք սեմանտիկ շերտը (մետրիկները որպես կոդ) և օրացույցը։
6. Ստեղծեք MVs/կանխատեսումներ թանկարժեք տարածքների համար։
7. Միացրեք DQ/կատալոգը/lineage և վերահսկեք սխեմաները։
8. Windows RBAC/PII/պոլիմիզացիա, կոդավորում, աուդիտ։
9. Պարամետրեր ՝ p95/p99, արժեքը, ալտերտերը քայքայման և փոխակերպման համար։
10. DR ուսուցումները և շրջապատի վերարտադրումը։
Antipatterns
«Մի հսկա փաստ առանց կուսակցությունների» տրաբայթ և հաշիվ աճում է։
Տարբեր dashbords-ում մետրի չհամաձայնեցված սահմանումները։
SCD2 բացակայությունը այնտեղ, որտեղ բիզնեսը պահանջում է պատմականություն։
Բյուջեի նորմալացումը 'ավելցուկ ջոիններ և դանդաղ հաշվետվություններ։
Հում տվյալները առանց DQ-cheks-ի և lineage-ի ցույց են տալիս «ոչինչ» զեկույցները։
Վերականգնման բացակայությունը/TTL-ն բացատրում է աղբի ծալումը և արժեքի պայթեցումը։
Արդյունքները
Հուսալի iGaming-MSH-ը պարզ մոդել է (DV no Star), մեկ բառարանը, ճիշտ կուսակցությունները/կլաստերիզացիան, նյութականացված վիտրինները, խիստ DQ/lineage, ինչպես նաև RBAC/PII/տեղայնացումը։ Ավելացրեք ELT-ի և արժեքի կարգապահության կողմից կառավարվող նորարարության համապարփակ հոսքը, և կստանաք կայուն վերլուծական պլատֆորմ, որը մեծանում է գրանցամատյանների, կարգավորող հաշվետվությունների և ad-hoc-hoc ուսումնասիրությունների համար, որոնք առանց անակնկալների են p99 և 108-ում։