Интерфейси дастрасии маълумот
1) Чаро интерфейси оқилона
Суръат ва пешгӯишаванда: нишондиҳандаҳои бизнес ва ҳисоботҳо ба SLA-ҳо мувофиқанд, бидуни "боркунии дастӣ".
Амният ва махфият: PII/биометрия таҳти назорат, k-беном, гео-марзҳо.
Тағйирпазирӣ: муштариёни гуногун (BI, хидматҳо, шарикон, DS/ML) чизҳои заруриро мегиранд.
Истифодаи "маълумот ҳамчун маҳсулот" бо шартномаҳо ва версияҳо.
2) Харитаи интерфейс (вақте ки чӣ)
Диалектҳои SQL/ANSI + фурӯшанда: таҳлили интерактивӣ, BI, ad-hoc.
REST JSON: агрегатҳои устувор ва маълумоти амалиётӣ, ҳамгироӣ бо шарикон.
GraphQL: графикаи тағйирёбандаи "интихобӣ" ва навигатсия (андоза/далелҳо).
GRPC (протобуф): таъхири ками серфинги онлайн (Дӯкони хусусият, баҳодиҳӣ).
Парвози тир/Паркет аз болои HTTP/S3-presigned: сутунҳои тез барои DS/ML.
OD bata: воситаҳои корхона, модели ҷадвал-ҳамчун-хидмат.
Ҷараёнҳо (Кафка/Пулсар) + CDC/Вебхукҳо: рӯйдодҳои воқеӣ, ҳамгироии реактивӣ.
Федератсия (Трино/Престо): Нуқтаи ягонаи вуруд ба сарчашмаҳои гуногун.
Қоида: агрегатҳо ва иловаро устувор → REST/MV, дархостҳои бойи худсарона → SQL, таъхири кам/хусусиятҳои онлайнӣ → g
3) Шартномаҳо ва версияҳо (семвер)
'МАЙОР. МИНОР. PATCH 'барои ҳар як API/схема/чорабинӣ.
MAJOR: тағйироти номувофиқ (роҳи нав/мавзӯъ/ҷадвал).
MINOR: Иловаҳо ба майдон/аргумент.
PATCH: таҳрири тасвирҳо/маҳдудиятҳо.
Шартномаҳо собит шудаанд: схема, филтрҳо, маҳдудиятҳо, махфият, SLO.
yaml openapi: "3. 0. 3"
info: {title: "Analytics API", version: "2. 4. 0"}
paths:
/v2/payments/metrics:
get:
parameters:
- {name: brand, in: query, schema: {type: string}, required: true}
- {name: country, in: query, schema: {type: string}}
- {name: from, in: query, schema: {type: string, format: date-time}}
- {name: to, in: query, schema: {type: string, format: date-time}}
- {name: group_by, in: query, schema: {type: string, enum: [psp,status,day]}}
- {name: limit, in: query, schema: {type: integer, default: 500}}
responses:
"200": {description: "OK"}
x-slo: {p95_latency_ms: 1200, freshness_max: "PT5M"}
x-privacy: {pii: false, min_group_size: 20}
4) Дастрасӣ ба таҳлил (SQL ва федератсия)
Дарвозаи SQL бо нақшҳо/ниқобҳо (амнияти сатр/сутун).
Боронҳои борон/BI: номҳои устувор ва семантика; дархостҳои вазнин ба preaggregation мегузаранд.
Федератсия (Трино/Престо): нуқтаи ягонаи вуруд, аммо бо сиёсатҳо: кадом феҳристҳо ва кадом хусусиятҳо мавҷуданд.
Lakehouse (Iceberg/Delta/Hudi): вақти сафар, аксбардорӣ тавассути SQL/REST.
Квоты: байтҳои сканшуда/дархост, мувофиқат, вақти девор.
5) Диаграммаи QL (шакли фасеҳ)
Мо ба муштарӣ медиҳем, ки майдони дилхоҳро ҷамъ кунад, аммо барфҳои/пешгӯиҳои омодашударо бо маҳдудиятҳои амиқ/устухон иҷро кунед.
graphql type Query {
payments(
brand: String!, country: String, from: DateTime!, to: DateTime!,
first: Int = 200, after: String
): PaymentConnection
}
Сиёсатҳо: чуқурии ≤ 5, гиреҳҳои умумӣ ≤ 5k, регексҳои ихтиёриро манъ кунед/ба монанди хатҳо; мо дархостҳои зуд-зуд кэш мекунем.
6) GRPC/Store Feature (таъхири кам)
Хусусиятҳои онлайн барои баҳодиҳии зидди қаллобӣ/тавсияҳо/RG.
proto service FeatureStore {
rpc GetFeatures (FeatureRequest) returns (FeatureResponse);
}
message FeatureRequest { string user_tok = 1; repeated string features = 2; }
message FeatureResponse { map<string, FeatureValue> values = 1; int64 ts_micros = 2; }
Талабот: p95 ≤ 50-100 мс, мувофиқати дақиқи offlayn↔onlayn, хусусияти TTL, кэши LRU, idempotency ва mTLS.
7) Ҷараёнҳо ва CDC
Чорабиниҳои домейн: 'пардохтҳо. deposit_accepted', 'бозӣ. round_finished'.
CDC (аз OLTP): тағирот дар вазъ/маҳдудият дар вақти воқеӣ.
Webhooks барои шарикон: обуна ба агрегатҳо (масалан, "Нокомии PSP> ҳадди").
Сиёсати бозгашт/эътироф: маҳз як маротиба барои танқид, ҳадди аққал як маротиба барои мониторинг.
8) Кӯлҳо ва намунаҳои калон
Парвози тир барои партофтани сутуни зуд ба DS/ML.
Имзо-URL ба Parquet/Feather, бо TTL кӯтоҳ ва дархости имзо.
Назорати интиқол ва андозаи файл; Боргирӣ кардани журнал (аудити WORM).
9) Филтрҳо, саҳифабандӣ, навъбандӣ
Пагинатсияи калидҳо (курсор) ба ҷои OFFSET барои маҷмӯаҳои калон.
Филтрҳо: сафедпӯстон аз рӯи майдонҳо, намудҳо ва операторҳо ('=, IN, БАЙНИ, префикс').
Гурӯҳбандӣ: рӯйхати маҳдуди майдонҳо, фармоиши пешфарз.
Ҷавоби қисман: 'майдонҳо = бренд, кишвар, миқдор' сарбориро коҳиш медиҳад.
http
GET /v2/game-rounds? brand=X&from=...&to=...&first=1000&after=eyJkYXRlIjoi...
10) Кэш ва арзиши
Кэши натиҷа барои дархостҳои қолаб, бо ID-и сурат хомӯш карда мешавад.
Кэши Edge/CDN барои агрегатҳои ҷамъиятӣ/нимҷамъиятӣ (бидуни PII).
Параметрҳои буҷет: маҳдудияти байтҳои сканшуда, мӯҳлати дархост, квотаи rps/min.
Афзалияти ҳавзҳо: 'bi _ hot', 'adhoc', 'partner _ api'.
11) Амният ва махфият
AuthN: OAuth2/OIDC (эътимодномаи муштариён барои хидматҳо, PKCE барои одамон).
Auth-Z: RBAC + ABAC (атрибутҳо: бренд, кишвар, литсензия, нақш).
MTLS байни хидматҳо, TLS 1. 2 + берун.
Гигиенаи PII: ниқобҳо/токенизатсия дар қабати API, ниқобҳои сутун, k-беном будани агрегатҳо.
Ҷудокунии гео/иҷорагир: фиристодани дархостҳо ба минтақаи иҷозатнома; калидҳои рамзгузорӣ барои як бренд/минтақа.
DSAR/Hold Legal: ҷустуҷӯ аз рӯи аломати мавзӯъ, асрори маҷмӯи яхкунӣ.
12) Мушоҳида (SLI/SLO) ва муҳофизат
SLI: p50/p95/p99 lat, хатогӣ, rps, байтҳои сканшуда, зарбаи кэш, квотаҳо/маҳдудиятҳо, ҳиссаи сутунҳои ниқоб, ҳиссаи нокомии авторизатсия.
SLO: таъхири p95, тозагии маълумот,% дархостҳои муваффақ, андозаи мин-гурӯҳ дар посухҳо.
Огоҳиҳо: баландшавии байтҳои сканшуда, пастшавии сатҳи зарба, хӯшаҳои 429/5xx, кӯшиши дастрасии PII, ихроҷи курсор.
yaml slo:
p95_latency_ms: 1200 success_rate: 0. 995 freshness_max: "PT5M"
privacy:
pii_allowed: false min_group_size: 20 quotas:
rps: 50 max_scanned_mb: 256
13) Форматҳо ва фишурдасозӣ
JSON барои мутобиқат; CSV - танҳо барои содироти хурду оддӣ.
Паркет/тир - пешфарз барои боркуниҳои калон.
Фишурдасозӣ: gzip/zstd (гуфтушунид тавассути 'Қабул-Рамзгузорӣ').
Муҳтаво-гуфтушунид: 'Қабул кунед: ариза/x-паркет'.
14) Метрҳо ҳамчун API (Таҳлил/дарвозаи OLAP)
Нишондиҳандаҳои сатҳи болоӣ: GGR/NET, CR, нигоҳ доштан, ҳодисаҳои RG - ҳамчун захираҳо бо параметрҳои 'бренд, кишвар, тиреза, гурӯҳи _ by'.
Тақрибан (HLL/TD iest) dlya фарқкунанда/фоизҳо.
Кэши калидӣ: '(метрӣ, параметр, snapshot_id)'.
15) Хусусияти IGaming - нуқтаҳои ниҳоӣ
'GET/v2/payments/metrics' - нокомӣ/навсозиҳо аз ҷониби PSP/кишвар/бренд бо тирезаҳои 7/30d.
'GET/v2/game-rounds/metrics' - бозиҳои беҳтарин/провайдерҳо, давомнокии p95, тирезаҳои RTP.
'GET/v2/rg/cases' - маҳдудиятҳои фаъол/худдорӣ (агрегатҳои k-anonymous).
'POST/v1/features: get' (GRPC) - хусусиятҳои онлайн барои баҳодиҳии қаллобӣ/тавсия.
'POST/v1/webhooks/psp-alerts' - огоҳиҳо "сатҳи коҳиш> ҳадди ниҳоӣ".
16) Намунаҳои шартнома
Буридаи лоғар аз GraphQL:graphql query {
payments(brand:"X", country:"TR", from:"2025-10-01", to:"2025-10-31", first:500) {
edges { node { day totalAmount declines psp } cursor }
pageInfo { hasNextPage endCursor }
}
}
Кафка (ҳодиса, Авро):
json
{"event_id":"...","occurred_at":169..., "brand":"X","psp":"Papara","status":"declined","amount":"100. 00","currency":"TRY"}
Парвози тир (қалам):
/flight/v1/query? dataset=gold. payments&from=...&to=...&brand=X&format=arrow
17) Раванди нави нашри интерфейс
1. ADR: Масъала/Арзиш/Мизоҷон/Амният/Арзиш.
2. Шартнома: схема, филтрҳо, маҳдудиятҳо, махфият, SLO, версияҳо.
3. Моделсозии сарборӣ: дархостҳои top-N, p95/байтҳои скан, арзиш.
4. Санҷиш/кэш/квота: бо нобаёнӣ фаъол кунед.
5. Ҳуҷҷатгузорӣ ва SDK: намунаҳо, маҳдудиятҳо, хатогиҳо, бознигарӣ, номутобиқатӣ.
6. Канария:% мизоҷон, санҷишҳои регрессия, огоҳиҳо.
7. GA: Версияи каталоги маҳсулоти маълумот, гузориши эффектҳо.
18) Анти-намунаҳо
SQL-и "хом" -ро барои ҳама кушоед - ихроҷи PII, арзиши пешгӯинашаванда.
Саҳифаи OFFSET ва 'SELECT' - дард бо таъхир ва ҳисоб.
GraphQL бидуни маҳдудиятҳои амиқ/хароҷот.
REST, ки бисёр сутунҳоро бе 'майдонҳо =' бармегардонад.
Набудани k-беном ва андозаи мин-гурӯҳ дар агрегатҳо.
Квотаҳо/маҳдудиятҳо ва кэши ғайрифаъол.
Не версия/шартномаҳо - мо муштариёнро бо ҳар тағирот "мешиканем".
Интерфейси якхела барои ҳамаи кишварҳо/брендҳо риоя накардани қоидаҳои минтақавӣ мебошад.
19) Харитаи роҳсозӣ
0-30 рӯз (MVP)
1. Каталоги маҳсулоти маълумот (ченакҳо/иловаро) ва шартномаҳои Open
2. Дарвозаи SQL бо RLS/CLS, k-беном будани агрегатҳо, квотаҳои асосӣ.
3. Як нуқтаи охири REST-metric ('/пардохтҳо/ченакҳо ') + кэш + ҳавзҳо' bi _ hot/adhoc '.
4. Store Feature GRPC: хондани 10-20 хусусиятҳои асосии онлайн (p95 ≤ 80 ms).
30-90 рӯз
1. Интерфейсҳои ҷараён (Kafka/Webhook) барои огоҳиҳои PSP/чорабиниҳои бозӣ.
2. Боркунии тир/Parquet аз URL пешниҳодшуда; каталоги сурат.
3. Federation Gateway (Трино/Престо) бо сиёсати возеҳ.
4. Мушоҳида: панели назоратии SLI/SLO, огоҳӣ дар бораи хароҷот/дермонӣ/PII.
3-6 моҳ
1. SDK (Намуди скрипт/Python/Go) бо бозсозӣ/idempotency/квота.
2. Иловаро лоғар GraphQL барои маҳсулот ва шарикон.
3. Васеъгардонии GRPC/FS, offlayn↔onlayn гуфтушунид; shadow релизҳои канарӣ.
4. Аудити махфият/DSAR; ҳисобот оид ба мутобиқати дастрасӣ.
20) RACI
Платформаи маълумот (R): дарвозаҳо, кэш, квотаҳо, федератсия, мушоҳида.
Идоракунии маълумот (A/R): шартномаҳо, версияҳо, махфият/k-беном.
Соҳибони домейн (R): семантикаи саҳроӣ, инвариантҳои тиҷорат, маҳсулоти маълумот.
Амният/DPO (A/R): Authn/Z, гео-изолятсия, DSAR/Hold ҳуқуқӣ.
SRE/Мушоҳида (C): SLO/SLI, огоҳиҳо, қобилият.
Таҳлил/BI/DS (C): талабот ба шаклҳо/агрегатҳо, SDK.
21) Қисматҳои марбут
Индексатсияи нигаҳдории таҳлилӣ, оптимизатсияи дархостҳои таҳлилӣ, схемаҳои маълумот ва эволютсия, тасдиқи маълумот, амалияи маълумот, таҳлил ва ченакҳои API, мағозаи хусусият, амнияти маълумот ва рамзгузорӣ, назорати дастрасӣ, сиёсати нигоҳдории маълумот.
Ҷамъ
Интерфейсҳои дуруст тарҳрезишудаи дастрасӣ нигоҳдорӣ ва ҷараёнро ба "маҳсулоти" боэътимод табдил медиҳанд: SLA-ҳои пешгӯишаванда, арзиши назоратшаванда, риояи дахолатнопазирӣ ва забони ягона барои гурӯҳҳои маҳсулот, таҳлил, мувофиқат ва шарикон. Дар IGaming, ин маънои онро дорад, ки тезтар суқути PSP, фаҳмидани рафтори бозингар ва қонеъ кардани талаботи танзим - бидуни боркунии дастӣ ва муҳоҷирати шабона.