Практычныя прыказкі: Apache Doris 4.1: Едынавана система зберагачвання та выкарыстоўвання дадзеных для AI та пошуку
Практычныя прыказкі: Apache Doris 4.1: Едынавана система зберагачвання та выкарыстоўвання дадзеных для AI та пошуку: контракты, перакананні та шаблоны коду для команд, якія викорыстоўваюць гэты патэрн.
Наступныя прыміткі паказваюць практычны шлях для розумэння “Apache Doris 4.1: Адзінавёрстаныя схованне і выкарыстоўванне дадзэнняў для AI і пошуку”. Акцэнт ставіцца на кантракты, перакрычанняя і месца для коду, які можна легка адразу застаўіць, а не на мотывацыйныя аспекты. Калі працуеце над стадзіяй Аптарсакшн, спачатку запісайце кантракт: неабходныя вхідныя даны, сігнал успеху і тое, што выканаецца у разе частковага невыпання. Такі список перакрычанняя дапамагае заліцьваты пазнейшыя змены ў кодзе. Спрэчвайце гэтую стадзію як кантракт межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы элементам, задаць критэрыя успеху і не прабуйце адбыцца без звесткі пра частковае завершэння.
1. AI і пошук
Этап 1 AI-пошуку працюе найкраща, калі яго розглядаць як мэтрыябельную паверхню. Запісайце адны ідеальны прыклад роботы, адну справу з бягам і прыметку па поверненню да пачатковага стану пры расшырэнні масштаба. Запісвайце часы выконання і кост токэнаў або запита праза функцыональнымі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмавайнага режыма ў спяльныя среды. Раздзеляйце правілы часткавання дадзеных і правілы ўзяць дадзеныя. Змена аднаго з іх не должна вымагаць перапісвы другога, калі зменяюцца паметрыкі якосці.
A. Вектарны пошук
Этап пошуку за допамою вектара працюе найкраща, калі яго розглядаць як вимерную паверхню. Зафіксавце адна ідеальная прымерка, адзін кейс неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Зберагаюце настройкі пазырочна ад коду прыемлена. Файлы сяродавішняе, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць аудыт без неабяжнага чытання всіх дадзеных. Раздзеляйце правілы часткавання дадзеных ад правілаў ўзяць іх. Змена адных не должна вымагаць перапісву іншых, калі зменяюцца паказнікі якасці.
CREATE TABLE sift_1M (
id int NOT NULL,
embedding array<float> NOT NULL COMMENT "",
INDEX ann_index (embedding) USING ANN PROPERTIES(
"index_type"="ivf",
"metric_type"="l2_distance",
"dim"="128",
"nlist"="1024"
)
) ENGINE=OLAP
DUPLICATE KEY(id) COMMENT "OLAP"
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
);
CREATE TABLE for_ivf_on_disk (
id BIGINT NOT NULL,
embedding ARRAY<FLOAT> NOT NULL,
INDEX idx_emb (embedding) USING ANN PROPERTIES (
"index_type"="ivf_on_disk",
"metric_type"="l2_distance",
"dim"="128",
"nlist"="1024"
)
) ENGINE=OLAP
DUPLICATE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 8
PROPERTIES ("replication_num" = "1");
CREATE TABLE product_quant (
id BIGINT NOT NULL,
embedding ARRAY<FLOAT> NOT NULL,
INDEX idx_emb (embedding) USING ANN PROPERTIES (
"index_type"="ivf_on_disk",
"metric_type"="l2_distance",
"dim"="128",
"nlist"="1024",
"quantizer"="pq",
"pq_m"=64,
"pq_nbits"=8
)
) ENGINE=OLAP
DUPLICATE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 8
PROPERTIES ("replication_num" = "1");
B. Функцыя search(): аб’еднаны пошук тексту і аналітыка ў SQL
Этап функцыі пошуку працюе наякраўжэй, калі яго спрыяваць як мерыемую паверхню. Зафіксавайце адна ідеальная версія рэзультата, адин прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Дакументавайце як успішны, так і вярнучыся шляхы роботы. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў є частью продукту, а не наступным етапам дорабкі. Раздзеліце правілы частковай обработкі дадзеных ад правіл ўтрымання інформацыі. Змена адных не павинна вымагаць перапісвання іншых, калі змянююцыся паказнікі якосці. Этап функцыі пошуку працюе наякраўжэй, калі яго спрыяваць як мерыемую паверхню. Зафіксавайце адна ідеальная версія рэзультата, адин прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Спрыявайце этапу як кантракту межа вхіднымі дадзенымі і перакананымі выходнымі рэзультатамі. Дайце назвы элементам, задаць критэрыя успеху і не падтрымвайце беззвучнае частковае завершэння роботы.
-- Multi-condition: TERM + PHRASE + NOT evaluated in a single pass
SELECT request_id, error_msg, latency_ms
FROM inference_logs
WHERE search('
level:ERROR
AND error_msg:"CUDA out of memory"
AND NOT module:healthcheck
AND model_name:gpt*
')
AND log_time > NOW() - INTERVAL 1 HOUR
ORDER BY latency_ms DESC LIMIT 100;
-- BM25 relevance scoring
SELECT request_id, error_msg, score() AS relevance
FROM inference_logs
WHERE search('error_msg:"memory allocation failed" OR error_msg:"CUDA error"')
ORDER BY relevance DESC LIMIT 20;
-- Nested search: query inside a VARIANT array
SELECT * FROM agent_logs
WHERE search('NESTED(steps, status:error AND tool:code_exec)');
-- search + aggregation: filter and analyze in one query
SELECT model_name, COUNT(*) AS error_count,
PERCENTILE_APPROX(latency_ms, 0.99) AS p99_latency
FROM inference_logs
WHERE search('level:ERROR AND error_msg:"CUDA out of memory"')
AND log_time > NOW() - INTERVAL 1 HOUR
GROUP BY model_name ORDER BY error_count DESC;
C. Абмовінныя сховышчы дакументаў у формате JSON ў размере 100 MB для дыялогаў AI з дзейнам контэкстам
Для стадіі C Native 100MB JSON неабяжна ўскладнення вводных дадзей, адпаведальнага за крок і крэтарыяў завершэння працы перад зменым коду. Аперацыйныя працавнікі павінны магчымае перзапускаць крок з вядомай точкі контролю, не прабуючы выявіць схованы стан. Запісваюць час выконання і кост токенаў або запытаў разам з функцыйнаімі рэзультатамі. Відразлівае паказанне костаў запобегае неспадзяваным рачункам, калі працэс пераходзіць з дэмавай версіі ў спадзеленыя среды. Наводзяць усі часткі тексту, якія фактычна лежалі в основе адпаведнай адказу. Без цых цітатаў аперацыйныя працавнікі не можуць разлічыць галюцинацію ад прасоўкі ў індэксаванні.
D. Сегмент V3: Раз'ядранне метадаў для большых табелей
Для стадіі V3 Metadata сегмента D неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аперацыйныя працавнікі павінны магчымае перазапускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба залічыць пазначкай ад коду прыемленае. Файлы сераўіснага аптэнавіта, хранення секретных дадзенаў і флагі функцыйяй павінны знаходзіцца ў адном месцы, якое працавнікі можуць пераглядаць, не чытаючы весь ланцуг. Паказваць трэба тыя часткі тексту, якія фактычна лежалі в основе адпаведнай адказы. Без цых цітатаў працавнікі не зможуць адразліць галюцинацыю ад прасоўкі ў індэксаванні.
CREATE TABLE table_v3 (
id BIGINT,
data VARIANT
)
DISTRIBUTED BY HASH(id) BUCKETS 32
PROPERTIES (
"storage_format" = "V3"
);
E. Оптымізацыя рэдкага столбца: Рэдкае шардаванне і рэдкі кэш
Для стадіі оптымізацыі розрэджаных столбцаў E неабходна перад змянай коду задаць вхідныя даны, адпаведальнага за этап і крэтырыя завершэння. Аператары должны магчымае запускіць этап з вядомай точкі контролю, не падозрываючы прыхованы стан. Неабходна задокументаваць як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкія перакрыцці та обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней. Паказваць трэба тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адказы. Без ціх цитатаў аператары не зможаць розразліць галюцинацыю ад прасоў у індэксаванні. Для стадіі оптымізацыі розрэджаных столбцаў E неабходна перад змянай коду задаць вхідныя даны, адпаведальнага за этап і крэтырыя завершэння. Аператары должны магчымае запускіць этап з вядомай точкі контролю, не падозрываючы прыхованы стан. Цю стадію трэба спрыяглядаць як кантракт межа вхіднымі данымі та перакананымі выходнымі рэзультатамі. Назваць всі неабходныя даследы, задаць крэтырыі успеху та адмовіцца ад мовчанкавага частковага завершэння.
CREATE TABLE user_feature_wide (
uid BIGINT,
features VARIANT<
'user_id' : BIGINT,
'region' : STRING,
properties(
'variant_max_subcolumns_count' = '2048',
'variant_sparse_hash_shard_count' = '32'
)
>
)
DUPLICATE KEY(uid)
DISTRIBUTED BY HASH(uid) BUCKETS 32
PROPERTIES (
"storage_format" = "V3"
);
F. Режым DOC: быстрэйшая запісь і эфектыўнае выкарыстоўванне всіх дакументаў
Калі працуеце ў режыме F DOC Mode Faster, спачатку запісайце неабходныя даны: параметры, якія трэба запрашваць, сігнал успеху і тое, што выканаецца у разе частковага невыпання. Такі список дапамагае заліцвачыць змяны ў кодзе. Запісывайце час выканання аперацый, а таксу токеноў чы запитаў разам з рэзультатамі ўжывання. Відразлівае паказанне вартасцей запобегае неспадзяваным расходам, калі праця пераходзіць з дэмаверсіі ў спальнаваныя сераўры. Перад налаштовванням запитоў пераканайцеся, як система адпавідае на фіксованыя запитанні. Частае змены формулювання запитоў рэдка калі-небудзь павышаюць якасць выкарыстоўвання дакументаў.
CREATE TABLE trace_archive (
ts DATETIME,
trace_id STRING,
span VARIANT<
'service_name' : STRING,
properties(
'variant_enable_doc_mode' = 'true',
'variant_doc_materialization_min_rows' = '100000',
'variant_doc_hash_shard_count' = '32'
)
>
)
DUPLICATE KEY(ts, trace_id)
DISTRIBUTED BY HASH(trace_id) BUCKETS 32
PROPERTIES (
"storage_format" = "V3"
);
2. Быстрэйшы OLAP
Калі працюеце над 2-м ўрадзаемым этапам OLAP, спачатку запісайце угоду: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць пад частым неудачам. Такі список контроля дапамагае заліцьваты змяны ў кодзе пазнейша. Зберагайце настройкі за межамі коду прыемлі. Файлы сераўнавання, хранілішчы секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабяжлівага чытання всей структуры. Замерайце рэкалі на фіксаваным наборе запитаў прычым падлаштавання запрошэнняў. Частае змяненне запрошэнняў рэдка калі вялікі эфект на слабую систему пошуку.
Аналіз калькольнікаў
Калі працуеце над стадзіяй Мнагатаблевай аналітыкі, спачатку запісаце кантракт: неабяжлівыя данні, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список перакладоў заходзіць пазнейшыя змены коду чыстымі. Дакументаваце як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе контралі і обработка некоректных паведамленняў ёсць часткаю продукту, а не пазнейшым дапрацоўкам. Змяроўваеце рэкалі на фіксаванай сэтке запытаў прычым падлашоўвання запытанняў. Частае змінэ запытанняў рэдка карміць слабкайям у збіры даных. Калі працуеце над стадзіяй Мнагатаблевай аналітыкі, спачатку запісаце кантракт: неабяжлівыя данні, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список перакладоў заходзіць пазнейшыя змены коду чыстымі. Спрэцьвачаеце гэтую стадзію як кантракт межа даннімі і перакананымі выходамі. Называйце элементы, задаўце перакананні на успех і адмовляйцеся ад тыхоўага частковага завершэння.
Аналітыка шырокіх табалей
Этап аналізу Wide-Table работае наяўней, калі яго спрыяваць як мерыемую паверхню. Запісаце адна ідеальная транскрыпцыя, адзін прыклад неудачы і прыметку па абратанні стану раней, чым расширваце сферу дзеяння. Запісвайце часы выканання і косты токеноў або запытак па боку функцыйнальных рэзультатаў. Відразлівая вартасці з самага пачатку запобегае неспакою з боку расчыткаў, калі праця пераходзіць з дэмовай среды ў спакульную. Раздзеляйце правілы часткавання дадзеных і правілы ўзяць іх. Змена аднаго з іх не должна прымусіваць перапісванне другога, калі змянююцца паказнікі якосці.
A. Агрэгацыя праз JOIN
Этап саювання дадзейнаў праз агрэгацыю працуе наякша, калі яго спрыяваць як мерыемую паверхню. Запісаце адна ідеальная версія дадзейнаў, адин прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Храніце настройкі парадульна ад коду прыемлівача. Файлы сераўнавальных сэрваў, базы з секретнымі данымі і пазнакі функцый должны знаходзіцца ў адном месцы, куда аператары можуць адбавляць контроль без неабходнасці чытання всей структуры. Раздзеляйце правілы часткавання дадзейнаў ад правілаў ўзяць іх. Змена адных не должна вымагаць перапісву іншых, калі зменяюцыся паказнікі якосці.
B. Оптымізацыя групавання набораў
Этап оптымізацыі групавання B работае наяўней, калі яго спрыяваць як мерыемую паверхню. Зберагучы адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць сферу дзеяння. Дакументаваць трэба як успішны, так і вярнучыся шляхы. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є часткай продукту, а не наступным етапам дорабачання. Раздзеліце політыку часткавага абрабатвання і політыку выкарыстоўвання дадзеных. Змена адной з іх не должна вымагаць перапісвання другой, калі зменяюцыся паказнікі якосці. Этап оптымізацыі групавання B работае наяўней, калі яго спрыяваць як мерыемую паверхню. Зберагучы адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць сферу дзеяння. Спрыяйце цэму этапу як кантракту межа вхіднымі дадзенымі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаць критэрыя успеху і адмовіцеся ад мовчанкавага частковага завершэння.
C. Абрабатванне вяртлівых столбцоў
Для стадіі C Nested Column Pruning неабяжна ўзначыць вхідныя даны, адпаведальнага за этап і крэтыры завершэння пры змяне коду. Аператары должны магчымаць перзапуск этапа з вядомай точкі контролю, не падозрываючы прыхованы стан. Запісваць час выконання і кост токеноў або запытаў разам з функцыйнальнымі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі парадокс пераходзіць з дэмовай среды ў спакульнаныя сераўы. Указваць часткі тексту, якія фактычна сталі падставай для адпаведнай адказу. Без ціх цытатаў аператары не можуць разлічыць галюцинацію ад прасоўкі ў індэксаванні.
D. Condition Cache
Для стадіі кэшаў у сцэнарыі D Condition неабходна пазначыць вхідныя даны, адпаведальнага за выкананне крока і крэтыяры завершэння пры перадзмене коду. Аператары должны магчымаць перывыканне крока з вядомай точкі контролю, не прабуючы спадарацца пра схованы стан. Конфігурацыю трэба залічыць паза кодам прыкладнення. Файлы сяродавішча, хранальнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць, не чытаяўшы весь код. Паказваць трэба тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адказы. Без ціх цитатаў аператары не можаць разлічыць галюцинацію ад прасоўкі ў індэксаванні.
SELECT * FROM orders WHERE region = 'ASIA';
SELECT count(*) FROM orders WHERE region = 'ASIA';
E. Кэш запытанняў: паўторны выкарыстоўванне рэзультатаў проміжнага агрэгавання
Для стадіі паўтаральнага выкарыстоўвання кэшу запытак E неабходна перад змянай коду задаць вхідныя даны, адпаведальнага за этап і крэтыяры завершэння. Аперацыяныя працавнікі должны магчымае паўтарна запускаць этап з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Неабходна задокументаваць як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў є частью продукту, а не етапамі далейшай наладкі. Паказваць трэба тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адпаведзі. Без цых цитатаў аперацыяныя працавнікі не зможуць розразліці галюцинацыю ад працявання з непашкоджаным індэксам. Для стадіі паўтаральнага выкарыстоўвання кэшу запытак E неабходна перад змянай коду задаць вхідныя даны, адпаведальнага за этап і крэтыяры завершэння. Аперацыяныя працавнікі должны магчымае паўтарна запускаць этап з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Цю стадію трэба спрацавляць як кантракт між вхіднымі данымі і перакананымі выходнымі рэзультатамі. Назваць всі неабходныя элементы, задаць крэтыяры успеху і не падзеўляцца частым, некоректным завершэнням этапу.
SELECT region, SUM(revenue) FROM orders WHERE dt = '2024-01-01' GROUP BY region;
F. Оптымізацыя CASE WHEN
Калі працуеце над стадзіяй оптымізацыі F CASE WHEN, спачатку запісайте умовы: неабяжлівыя даннэ, сигнал успеху і тое, што выканаецца у разы частковага невяліка. Такі список контроля дапамагае заставіць пазнейшыя змены коду быць чыстымі. Запісвайте час выканання і вартасць токена або запытку праз аднае з функцыйнальных рэзультатаў. Відразлівасць вартасці з самага пачатку запобегае неспакойным рахункам, калі працэўнае сераўеры зменяюцца з дамовай среды на спакульнае. Перад налаштаваннем запрошэнняяў пераканайцеся ў рівень воскрэсення інформацыі на фіксаванай сэтке запытаў. Частае змены запрошэнняяў рэдка калі лепшае слабую систему пошуку.
3. Раздзелэнне вычысленняў і зберагача
Калі працюеце над 3-й стадзіяю раздзелення вычысленняў і зберагачоў, спачатку запісаце кантракт: неабходныя даны, сігнал успеху і тое, што выходзіць па частым неудачам. Такі список контроля дапамагае заліцьваты змяны ў кодзе пазнейша. Зберагачы настройкаў трэба выкладзаць паза кодам прыемлі. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабяжнага чытання всіх элементаў системы. Перад налагоджэньем запитоў памерце рэткість аднаходжання дадзеных на фіксаваным наборы запитаў. Частая змена запітоў рэдка калі вярнайша слабую эфектыўнасць аднаходжання дадзеных.
A. Удосконаленні кэша файлоў
Калі працюеце над стадзіяй удосконалення кэша файлоў, спачатку запісайце контракт: неабходныя даны, сигнал успеху і тое, што выканаецца у разе частковага невыпання. Такі список перакладоў заходзіць пазнейшыя змены коду чыстымі. Документавайце як шлях успеху, так і шлях вярнення да нормы. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць частью продукту, а не пазнейшым дапрацоўкам. Змяроўваюце рэтард на фіксаваным наборы пытанняў прычым регулюванні запитоў. Частае змены запитоў рэдка калі вярнуе слабую эфектыўнасць пошуку. Калі працюеце над стадзіяй удосконалення кэша файлоў, спачатку запісайце контракт: неабходныя даны, сигнал успеху і тое, што выканаецца у разе частковага невыпання. Такі список перакладоў заходзіць пазнейшыя змены коду чыстымі. Спрэцаваўце гэтую стадзію як контракт межа данымі і перакананымі выходамі. Назвайце артыфакты, задаць правілы пераканання успеху і адмовіцеся ад тыхнай частковай роботы без паведамлення.
mysql> select * from information_schema.file_cache_info where TABLET_ID = 1761571031445;
+----------------------------------+---------------+-------+--------+-------------+-----------------+---------------+
| HASH | TABLET_ID | SIZE | TYPE | REMOTE_PATH | CACHE_PATH | BE_ID |
+----------------------------------+---------------+-------+--------+-------------+-----------------+---------------+
| 468448215c52334ae5bee147259b1027 | 1761571031445 | 15120 | index | | /mnt/disk1/project/filecache | 1761571031251 |
| 71bb73d34cd8ffe280b16dd329df5ba1 | 1761571031445 | 13117 | index | | /mnt/disk1/project/filecache | 1761571031251 |
| 77c6b69d1a7c4fe740a11bab5c1bbaa3 | 1761571031445 | 12249 | index | | /mnt/disk1/project/filecache | 1761571031251 |
+----------------------------------+---------------+-------+--------+-------------+-----------------------------------------------------------------------------+---------------+
SELECT be_id, tablet_id, type, SUM(size) AS cache_bytes
FROM information_schema.file_cache_info
WHERE tablet_id = 1761571031445
GROUP BY be_id, tablet_id, type
ORDER BY cache_bytes DESC;
B. Эластычнае масштабаванне, запыткі з холадным ахвотам і іншыя паследжэння
Этап «Холадны ахвот» у режыме эластычнага масштабавання працюе найэфективней, калі яго розглядаць як параметр, які можна змерыць. Перш чым расширваць сферу прыемлівання, зафіксавайце адны ідеальны прыклад работы, адзін кейс неудачы і прыметкі па поверненню да пачатковага стану. Запісвайце часы выконання і косты токеноў або запыткаў разам з функцыйнальнымі рэзультатамі. Відразлівая візуабільнасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмовай среды ў спакульную. Раздзеляйце правілы часткавання дадзеных і правілы ўтрымання іх. Змена аднаго з яных не павінна вымагаць перапісвання другога, калі зменяюцца паказнікі якосці.
4. Data Lakehouse
Этап 4 Data Lakehouse працюе найкраща, калі яго розглядаць як меркаваемую плошчу. Зберагачыце адны ідеальны прыклад, адзін кейс неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Храніце настройкі парадульна коду прыемлена. Файлы сяродавішняе, хранільнікы секрэтных дадзеных і флагі функций должны знаходзіцца ў аднам месцы, куды аператары можаць адрабатаваць без неабяжнага чытання всіх элементаў. Раздзеляйце правілы часткавання дадзеных і правілы ўтрымання іх. Змена адных не должна вымагаць перапісву іншых, калі зменяюцца паказатэлі якосці.
A. Управленьне жыцёвым циклам Lakehouse
Этап адміністрацыі жыццёвага циклу A Lakehouse працюе найэфектывней, калі яго розглядаюць як вимерную плошчу. Зафіксавце адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Документавайце як шлях успеху, так і шлях вярнэння да нормальнага стану. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў є частью продукту, а не наступным етапам дорабкі. Раздзеляйце політыку частковай обработкы дадзеных і політыку ўтрымання інформацыі. Змена адной з яных не должна вымагаць перапісвання другой, калі зменяюцыся паказнікі якосці. Этап адміністрацыі жыццёвага циклу A Lakehouse працюе найэфектывней, калі яго розглядаюць як вимерную плошчу. Зафіксавце адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Разглядвайце этап як кантракт межа вхіднымі дадзеннямі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху і не падтрымвайце бяспечнае частковае завершэння задання.
B. Выконавальныя характэрыстыкі запитоў у Lakehouse
Для стадіі выканання запитаў у B Lakehouse неабходна пазначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння пры перадзеіснавленні коду. Аператары должны магчымае перадзеіснавляць крок з вядомага пункта контролю, не прыпускаючы невідомых станоў. Запісваць час выканання і вартасць токеноў або запитоў разам з функцыональнымі рэзультатамі. Візуабілізацыя вартасцей з самага пачатку запобегае неспакою, калі процес пераходзіць з дэмовай среды ў спакульную. Указваць тыя часткі тексту, якія фактычна ляглі в основу адпаведнай адпаведзі. Без цых цитатаў аператары не можуць розразліць галюцинацію і прычыны, вызваныя працэсам індексавання.
C. Вжыванасць федэраўных аналітых
Для стадіі C Federated Analytics Usability неабяжна ўскладнення вхідных дадзей, адпаведальнага за крок і крэтарыяў выходу пры зміне коду. Аператары должны магчыма было перзапускнуць крок з вядомага пункта контролю, не спрабоўваючы з’ясаваць захаваны стан. Канфігурацыю трэба залічыць паза кодам прыкладнення. Файлы сераўніка, хранілішчы секрэтных дадзей і флагі функций должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць, не чытаяўшы весь граф. Неабяжна цітацыя частак, якія фактычна ляглі в основу адпаведнай адказы. Без цітацый аператары не можаюць разлічыць галюцинацію ад працягу індэксавання.
5. Абрабоцкая пакетамі
Для стадіі 5 апроцэса пакетной обработкі неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння прычым перад змінайом коду. Аператары должны магчымае перазапускать крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Неабяжна задокументаваць як шлях успеху, так і шлях вярнення да нормальнасці. Перапрыбуткі, людзкія перакрыцця і обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней. Указваць трэба тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адказы. Без ціх цитатаў аператары не зможаць розразліць галюцинацыю ад працягу індэксавання. Для стадіі 5 апроцэса пакетной обработкі неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння прычым перад змінайом коду. Аператары должны магчымае перазапускать крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Спрыяць трэба, каб гэтае стадія выступала як контракт межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Назваць всі неабяжныя элементы, узначыць критэрыі успеху і не прабоўваць прыймаць часткова завершаныя рэзультаты без паведамлення.
A. MERGE INTO
Калі працюеце з этапам A MERGE INTO, спачатку запісайте умовы: неабяцковыя даны, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцварыць будучыя змены ў кодзе. Запісвайце час выканання і кост токена або запыту праза функцыйнальнымі рэзултатамі. Відразы коста з самага пачатку запобегае неспакоўным рахункам, калі працэс пераходзіць з дэмовай среды ў спяльныя. Замерьце рэткість аднаходжання даўедзеных дадзенаў на фіксаванай сэтке запытаў прычым регулюванні прапозыцый. Частае змена прапозыцый рэдка калі-небудзь выправляе слабыя аспекты пошуку.
MERGE INTO target t
USING source s
ON t.id = s.id
WHEN MATCHED THEN
UPDATE SET t.value = s.value
WHEN NOT MATCHED THEN
INSERT (id, value) VALUES (s.id, s.value);
B. Паўнейшая запісь у дыск
Калі працюеце над стадзіяй B Enhanced Spill-to-Disk, спачатку запісайце умовы кантракту: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага абярэння. Такі список контроля дапамагае заліцьварыць пазнейшыя змены ў кодзе. Храніце настройкі параду ўнутры коду прыемлі. Файлы сераўіса, хранальнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аудыт без неабяжлівага чытання всей структуры. Перад налаштаваннем запитоў пераканайцеся ў рэверсі на фіксаваным наборе запытанняў. Частае змена запытоў рэдка калі выправляе слабую эфектывнасць адзысквання дакументаў.
6. Падыгрышы ў зручнасці вядзення
Калі працуеце над 6 стадзяміямі павышэння ўжыванасці, спачатку запісайце «контракт»: неабяжныя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список перакладоў заходзіць пазнейшыя змены коду чыстымі. Дакументавайце як «шчаслівы» шлях, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць часткаю продукту, а не пазнейшым дапрацоўкам. Змяроўвайце рэтард на фіксаваным наборы пытанняў прычыну налаштавання запрошэнняў. Частае зміненне запрошэнняў рэдка калі вялікі эфект на слабую систему пошуку.
A. Расширэння двыжка выканання
Этап расшырэнняя двайхарчовага механізма A працюе наяўней, калі яго спрыяваць як меравальную плошчу. Запісаўце адны ідеальны прыклад роботы, адзін кейс неудачы і прыметкі па поверненню да пачатковага стану пры розшырэнні масштаба. Запісвайце часы выконання і косты токеноў або запытаў разам з функцыйнаімі рэзультатамі. Відразлівае паказанне костаў запобегае неспадзяваным рахункам, калі процес пераходзіць з дэмавайнага режыма ў спяльныя среды. Раздзеляйце політыку частковага обробкі дадзеных ад політыки ўтрымання іх. Змена адной з яных не павінна вымагаць перапісвання другой, калі зменяюцыся паказнікі якосці.
SELECT user_id, tag
FROM user_profile,
UNNEST(tags) AS t(tag);
WITH RECURSIVE org_tree AS (
SELECT id, parent_id, name
FROM org
WHERE parent_id IS NULL
UNION ALL
SELECT o.id, o.parent_id, o.name
FROM org o
JOIN org_tree t ON o.parent_id = t.id
)
SELECT * FROM org_tree;
SELECT t1.ts, t1.value, t2.price
FROM trades t1
ASOF JOIN prices t2
ON t1.symbol = t2.symbol
AND t1.ts >= t2.ts;
B. Прыем дадзеных і павышэнне эфектывнасці шляху запісу
Процесы прыему дадзейна B Data і ўтриманні стэйджа працуюць наякша, калі іх спрыявае можласць вимеры. Перш чым расширваць масштаб, зафіксавайце адны ідеальны прыклад, адну справу з бягам і прыметку па поверненню да пачатковага стану. Храніце настройкі за межамі коду прыемліка. Файлы сяродавішняе сераўісу, базы секрэтных дадзейнаў і пазнакі функцый должны знаходзіцца ў адном месцы, куды аператары можаць адбавляць контроль, не чытаючы весь структураны дадзенні. Раздзеляйце правілы частковага обробкі дадзейна і правілы ўтрымання. Змена адных не павинна вымагаць перапісву іншых, калі зменяюцыся паказателі якосці.
C. Адрабоўка та апдэйт моделей
Этап C Write and Update працюе найкраща, калі яго розглядаць як мерыемую сферу. Зберагчыце адны ідеальны прыклад роботы, адны прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Дакументавайце як шлях успеху, так і шлях вярнэння да нормальнага стану. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў ёсць часткай продукту, а не чымось, што дадаецца пазней. Задазвайце ліміты на колькість токенав за раунд і за сесію. Інструменты-агенты агрэсывна расширваюць контекст; жорсткія ліміты не дазволяюць дэмам ператварыцца на неспакоўлівыя рахункі. Этап C Write and Update працюе найкраща, калі яго розглядаць як мерыемую сферу. Зберагчыце адны ідеальны прыклад роботы, адны прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Разглядвайце гэты этап як кантракт межа вхіднымі даннымі і паверыранымі выходнымі рэзультатамі. Даўце назвы артыфактам, задазвайце критэрыя успеху і адмовіцеся ад мовчанкавага частковага завершэння.
D. TIMESTAMPTZ: Падтрымка абліковае часавой зоны
Для стадіі D TIMESTAMPTZ Native Time неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыяры завершэння пры зміне коду. Аператары должны магчыма ўвайсці крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Запісвайце час выконання і кост токена або запыту праза функцыйнальнымі рэзултатамі. Відразы коста з самага пачатку запобегае неспакоўным рахункам, калі траекторыя пераходзіць з дэмавайнага сераўера у спяльныя сераўеры. Указвайце тыя часткі тексту, якія фактычна ляглі в основу адпаведнай адказы. Без цых цітатаў аператары не можуць разлічыць галюцинацію ад прасоўкі ў індэксаванні.
Разлік
У стадії падробнага аналізу неабяжна ўважна вызначыць інпуты, адпаведальнага за крок і крэтыры завершэння пры перадзеі коду. Аперацыйныя працавнікі павінны магчымае перадзеі крок з вядомай точкі контролю, не падозрываючы прыхованы стан.
Чэк-ліст для аперацый
У стадії чэк-ліста для аперацый неабяжна ўважна вызначыць інпуты, адпаведальнага за крок і крэтыры завершэння пры перадзеі коду. Аперацыйныя працавнікі павінны магчымае перадзеі крок з вядомай точкі контролю, не падозрываючы прыхованы стан.
Лепшыя маленькія, тэставаныя елементы чым велікія скрыпты. Калі якісь крок не выйшае, адказчык павінен паказаць на адзін конкрэтны элемент, а не на заплутаны ланцюг задач.
Наводзіце тыя часткі тексту, якія фактычна лежаць у падставе адказу. Без ціх цитатаў аператары не зможаць розразліць галюцинацыю ад працягу ў індэксаванні.
Следзіце за костам і часам адпаведзення, а таксама за якосцю. Адказ, які ў трохі горшым калітэце, але коштае у 10 разоў меней, можа быць правым выборам для практычнага викорыстання.
Фіксуйце версіі залежнасцяў і запішыце хеш-значэнне зображэння, якое было выкарыстоўвана для дэманстрацыі. Возможнасць павторнага стварэння результата лепшая за традыцыйныя знання.
Зберагаюце настройкі праза код аплікацыі. Файлы сяродавішча, хранільнікі секрэтных дадзеных і флагі функцыйяў павінны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць без неабяжнага чытання всіх элементаў системы.
Перш чым запускать даныя стэка, заморозьце версіі, зафіксавце «золаты» транскрыпты для критычных лянцоў і паказваце спосабы атрыбуціі. У спяльных средах неабходны ліміты частоты запытанняў, пераказы на адпаведнасць правам і чыста вялічыню адпаведальнага за ротацыю секрэтных дадзенняў. Валіце простую надзяйнасць працы над крэатывнымі, адзінразовымі дамах.
Прыметкі для 14edffdb7bab: не кладзіце ключы прадаўцаў у репазітарый, задаце верхнюю межу токенаў на кожную сесію і зберагачыце транскрыпты празаўседліва з фікстурамі для ацэнкі, каб пазнейшыя замены модэляў заставаліся пораўнанымі.