This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git
The following commit(s) were added to refs/heads/master by this push:
new db4080569208 docs(i18n): machine Russian translation candidates (#4548)
db4080569208 is described below
commit db4080569208feee3e7b473e498bc02f1617cfef
Author: Mingyu Chen (Rayner) <[email protected]>
AuthorDate: Thu Oct 29 02:01:02 2026 +0000
docs(i18n): machine Russian translation candidates (#4548)
## Russian translation candidate
Source commit: `38d51ed68f58649235d42916d51398dc7dab6934`
Model: `gpt-6-sol`; glossary: `1`
Review status: machine. Russian proofreading and the normal PR checks
are still required.
| Action | Version | English source | SHA-256 prefix | Generation |
| --- | --- | --- | --- | --- |
| update | current |
[`course/101/04-apache-doris-data-operations-guide.mdx`](https://github.com/apache/doris-website/blob/38d51ed68f58649235d42916d51398dc7dab6934/course/101/04-apache-doris-data-operations-guide.mdx)
| `dba85eb86436` | model call |
## Failed or skipped tasks
- `T06-COURSE-189917765626050`
(course/101/01-apache-doris-overview.mdx): Model inserted an unsafe YAML
scalar
- `T06-COURSE-089136450145805`
(course/101/02-apache-doris-installation-guide.mdx): Model inserted an
unsafe YAML scalar
- `T06-COURSE-044990252586971`
(course/101/03-apache-doris-table-guide.mdx): Model inserted an unsafe
YAML scalar
- `T06-COURSE-004843671549515`
(course/101/05-apache-doris-query-data-guide.mdx): Protected content
changed (code, links, numbers, MDX, anchors, or metadata)
+ actual - expected
+ '2ef5d7d3f8a1e391b3e9e15bca88841b6df4002d64d2de97a5e9cdcb29290745'
- 'aad059d9f1593c4322c62da0392a9dcf450845d190f249a37f398a21c3c3cea1'
- `T06-COURSE-057281019363029`
(course/101/06-apache-doris-lakehouse-guide.mdx): Model inserted an
unsafe YAML scalar
## Candidates retained with warnings
None.
## Validation
Updates at or below 30% translate only changed Markdown/MDX blocks and
preserve other target blocks.
Change size is the sum of max(removed, added) non-empty English lines
per diff hunk, divided by the larger old/new line count.
New documents, larger updates, glossary changes or baselines that cannot
be aligned use full translation.
Generation uses at most three attempts per document. Deletions and
code-only updates may need no model call.
Each retry receives the earlier validation errors. Third-attempt content
issues are retained as warnings above.
Full attempt history and diagnostics are in generation.json and the page
state records.
Committed source hashes, managed paths and target/state hashes are
checked before applying candidates.
Master is checked before each model call and before publishing:
unrelated merges are allowed, a page changed on master is dropped, and a
translation configuration or tooling change discards the batch.
The publisher runs the shared PR translation-state, syntax and
internal-link checks before pushing.
The normal PR build and human proofreading are still required before
merging.
<!-- russian-translation-automation:v1
bot-head=3a1d95be0be183489c4bc2e40872728a5a77b233 -->
Shared PR admission checks: passed (translation state, syntax, internal
links).
Co-authored-by: morningman <[email protected]>
---
.../101/04-apache-doris-data-operations-guide.mdx | 182 ++++++++++-----------
.../101/apache-doris-data-operations-guide.json | 18 +-
2 files changed, 105 insertions(+), 95 deletions(-)
diff --git
a/i18n/ru/docusaurus-plugin-content-docs-course/current/101/04-apache-doris-data-operations-guide.mdx
b/i18n/ru/docusaurus-plugin-content-docs-course/current/101/04-apache-doris-data-operations-guide.mdx
index 0c5b987d4bc2..de4ef491545d 100644
---
a/i18n/ru/docusaurus-plugin-content-docs-course/current/101/04-apache-doris-data-operations-guide.mdx
+++
b/i18n/ru/docusaurus-plugin-content-docs-course/current/101/04-apache-doris-data-operations-guide.mdx
@@ -1,6 +1,6 @@
---
title: Руководство по операциям с данными в Apache Doris
-description: Узнайте, как выбирать способы загрузки, обновления, удаления и
экспорта данных в Apache Doris, пройдя семь практических разделов.
+description: Узнайте, как выбирать способы загрузки, обновления, удаления и
экспорта данных в Apache Doris, пройдя семь учебных блоков.
slug: /101/04-apache-doris-data-operations-guide
sidebar_position: 4
keywords:
@@ -34,27 +34,27 @@ import {
id="data-lifecycle"
label="Обзор операций"
title={<>Выберите операцию с учётом <em>жизненного цикла
данных</em>.</>}
- summary="Загрузка, обновление, удаление и экспорт предъявляют разные
требования к корректности и пропускной способности. Начните с того, как должно
измениться состояние данных."
- coachTitle="Выбор метода зависит от характера нагрузки."
- coach={<p>Прежде чем выбирать команду или API, определите расположение
источника, размер пакета, допустимую задержку, порядок повторных попыток,
особенности модели таблицы и место назначения данных.</p>}
+ summary="Загрузка, обновление, удаление и экспорт предъявляют разные
требования к корректности и пропускной способности. Сначала определите, как
должно измениться состояние данных."
+ coachTitle="Выбор способа зависит от характера нагрузки."
+ coach={<p>Прежде чем выбирать команду или API, определите расположение
источника, размер пакета, допустимую задержку, порядок повторных попыток,
семантику таблицы и место назначения результатов.</p>}
calloutTitle="Сначала — атомарность"
- callout={<p>Разберитесь, где проходят границы транзакции и как каждый
метод загрузки работает с метками, чтобы повторные попытки незаметно не
дублировали данные и не применяли их лишь частично.</p>}
+ callout={<p>Разберитесь в границах транзакции и поведении меток для
каждого способа загрузки, чтобы повторные попытки незаметно не дублировали
данные и не приводили к их частичной записи.</p>}
check={{
- question: "Что нужно определить перед выбором метода загрузки?",
- options: ["Источник, объём, допустимую задержку и требования к
повторным попыткам", "Случайную конечную точку API"],
+ question: "Что нужно определить перед выбором способа загрузки?",
+ options: ["Источник, объём данных, требования к задержке и
повторным попыткам", "Произвольную конечную точку API"],
correctIndex: 0,
- correctFeedback: "Верно — подходящая операция определяется
требованиями нагрузки.",
- incorrectFeedback: "Конечная точка — деталь реализации, а не
характеристика нагрузки.",
+ correctFeedback: "Верно — подходящую операцию определяют
требования рабочей нагрузки.",
+ incorrectFeedback: "Конечная точка — деталь реализации, а не
характеристика рабочей нагрузки.",
}}
>
<CourseConceptFlow
ariaLabel="Жизненный цикл операций с данными в Apache Doris"
focusIndex={0}
items={[
- { title: "Загрузка", description: "Загрузить данные" },
+ { title: "Загрузка", description: "Записать данные в систему"
},
{ title: "Обновление", description: "Изменить логические
строки" },
- { title: "Удаление", description: "Удалить данные в заданных
пределах" },
- { title: "Экспорт", description: "Выгрузить результаты" },
+ { title: "Удаление", description: "Удалить данные в заданной
области" },
+ { title: "Экспорт", description: "Вывести результаты" },
{ title: "Наблюдение", description: "Проверить каждое задание"
},
]}
/>
@@ -62,15 +62,15 @@ import {
<CourseLessonUnit
id="choose-load-method"
- label="Выбор метода загрузки"
- title={<>Подберите под источник и требования к задержке <em>способ
загрузки</em>.</>}
+ label="Выбор способа загрузки"
+ title={<>Подберите с учётом источника и требований к задержке
<em>способ загрузки</em>.</>}
summary="Doris поддерживает синхронную загрузку через HTTP,
непрерывное получение данных из Kafka, загрузку с помощью SQL и асинхронную
пакетную обработку."
- coachTitle="Выбирайте метод, который точно соответствует задаче."
- coach={<p>Используйте Stream Load для файлов или потоков HTTP, Routine
Load для управляемого получения данных из Kafka, INSERT INTO SELECT для
SQL-преобразований и внешних источников, а Group Commit — для частых небольших
записей.</p>}
+ coachTitle="Выбирайте способ, который подходит для конкретной задачи."
+ coach={<p>Используйте Stream Load для файлов или потоков HTTP, Routine
Load для управляемого получения данных из Kafka, INSERT INTO SELECT для
преобразований SQL и внешних источников, а Group Commit — для частых небольших
записей.</p>}
calloutTitle="Устаревший способ пакетной загрузки"
- callout={<p>Для объектного хранилища или HDFS по возможности
используйте актуальные методы на основе Catalog или табличных функций. Считайте
Broker Load устаревшим способом и сверяйтесь с рекомендациями для вашей
версии.</p>}
+ callout={<p>Для объектного хранилища или HDFS по возможности
используйте актуальные механизмы на основе Catalog или табличных функций.
Считайте Broker Load устаревшим способом и сверяйтесь с рекомендациями для
своей версии.</p>}
check={{
- question: "Какой метод подходит для непрерывного получения данных
из Kafka?",
+ question: "Какой способ подходит для непрерывной загрузки данных
из Kafka?",
options: ["Routine Load", "TRUNCATE TABLE"],
correctIndex: 0,
correctFeedback: "Верно — Routine Load управляет длительно
работающим заданием по получению данных из Kafka.",
@@ -78,14 +78,14 @@ import {
}}
>
<CourseConceptGrid
- ariaLabel="Схема выбора метода загрузки в Apache Doris"
+ ariaLabel="Обзор способов загрузки в Apache Doris"
columns={3}
items={[
{ tag: 'HTTP', title: "Stream Load", description: "Синхронная
загрузка файлов или потоков с немедленным получением результата задания." },
- { tag: 'KFK', title: "Routine Load", description: "Непрерывное
получение данных из Kafka с управлением ходом загрузки." },
- { tag: 'SQL', title: "INSERT SELECT", description:
"Преобразование и загрузка данных из таблиц, объектов Catalog или табличных
функций для файлов." },
+ { tag: 'KFK', title: "Routine Load", description: "Непрерывное
получение данных из Kafka с управлением ходом обработки." },
+ { tag: 'SQL', title: "INSERT SELECT", description:
"Преобразование и загрузка данных из таблиц, Catalog или файловых TVF." },
{ tag: 'JDBC', title: "INSERT VALUES", description: "Небольшие
записи через SQL, когда простота важнее высокой пропускной способности." },
- { tag: 'GC', title: "Group Commit", description: "Объединение
частых небольших записей для эффективной фиксации." },
+ { tag: 'GC', title: "Group Commit", description: "Объединение
частых небольших записей для эффективного выполнения транзакций." },
{ tag: 'ASYNC', title: "Пакетные задания", description:
"Отслеживание крупных асинхронных заданий по метке и состоянию." },
]}
/>
@@ -94,143 +94,143 @@ import {
<CourseLessonUnit
id="reliable-loading"
label="Надёжная загрузка"
- title={<>Проектируйте каждую загрузку так, чтобы её можно было
<em>отслеживать и безопасно повторять</em>.</>}
- summary="Метки, пороги качества, образцы ошибок, состояние задания и
позиции в источнике превращают загрузку из разового запроса в управляемый
процесс."
- coachTitle="Отправленное задание ещё не означает успешную загрузку."
- coach={<p>Где это поддерживается, назначайте постоянные метки,
проверяйте число принятых и отфильтрованных строк, сохраняйте контрольные точки
источника и настройте оповещения о приостановленных и неудачных заданиях. Явно
задавайте формат, соответствие столбцов и параметры фильтрации.</p>}
+ title={<>Обеспечьте для каждой загрузки <em>наблюдаемость и
возможность повтора</em>.</>}
+ summary="Метки, пороги качества, образцы ошибок, состояние задания и
смещения в источнике превращают загрузку из отдельного запроса в управляемый
процесс."
+ coachTitle="Отправленное задание ещё не означает успешное выполнение."
+ coach={<p>Где это поддерживается, назначайте устойчивые метки,
проверяйте число принятых и отфильтрованных строк, сохраняйте контрольные
позиции источника и настройте оповещения об остановленных и завершившихся с
ошибкой заданиях. Явно задавайте формат, сопоставление столбцов и параметры
фильтрации.</p>}
calloutTitle="Качество данных"
- callout={<p>Задавайте допустимую долю отфильтрованных данных
осознанно. Высокий порог может скрыть некорректные входные данные, а низкий —
остановить пакет, который можно было бы обработать.</p>}
+ callout={<p>Осознанно задавайте допустимую долю отфильтрованных
данных. Высокий порог может скрыть ошибки во входных данных, а низкий —
остановить пакет, который можно было бы обработать.</p>}
check={{
question: "Что делает повторную попытку загрузки безопаснее?",
- options: ["Постоянная метка задания и сохранённая позиция в
источнике", "Изменение схемы при каждой повторной попытке"],
+ options: ["Устойчивая метка задания и сохранённая позиция в
источнике", "Изменение схемы при каждой повторной попытке"],
correctIndex: 0,
- correctFeedback: "Верно — идентификатор задания и контрольные
точки помогают обнаружить или предотвратить повторную обработку данных.",
- incorrectFeedback: "Незапланированные изменения схемы затрудняют
оценку последствий повторных попыток.",
+ correctFeedback: "Верно — идентификатор задания и контрольные
позиции помогают обнаружить или предотвратить повторную обработку.",
+ incorrectFeedback: "Незапланированные изменения схемы усложняют
анализ повторных попыток.",
}}
>
<CourseConceptFlow
- ariaLabel="Порядок надёжной загрузки в Apache Doris"
+ ariaLabel="Процесс надёжной загрузки в Apache Doris"
focusIndex={2}
items={[
- { title: "Описать", description: "Формат + соответствие
столбцов" },
- { title: "Идентифицировать", description: "Метка + диапазон в
источнике" },
+ { title: "Описать", description: "Формат + сопоставление" },
+ { title: "Идентифицировать", description: "Метка + диапазон
источника" },
{ title: "Отправить", description: "Атомарная транзакция" },
- { title: "Отследить", description: "Строки + ошибки +
состояние" },
- { title: "Повторить", description: "Осознанно возобновить" },
+ { title: "Отслеживать", description: "Строки + ошибки +
состояние" },
+ { title: "Повторить", description: "Возобновить осознанно" },
]}
/>
</CourseLessonUnit>
<CourseLessonUnit
id="update-data"
- label="Обновления"
+ label="Обновление"
title={<>Пусть модель таблицы определяет <em>семантику
обновления</em>.</>}
- summary="Таблицы Unique Key поддерживают поведение UPSERT и SQL
UPDATE; таблицы Aggregate Key обновляются согласно объявленным функциям
агрегации."
- coachTitle="Полное и частичное обновление строк требуют разных затрат."
- coach={<p>При UPSERT полной строки передаётся вся новая логическая
строка. При частичном обновлении широкой строки передаётся меньше полей, но для
этого нужны поддерживаемые настройки таблицы и загрузки; также могут возникнуть
дополнительные затраты на чтение или слияние.</p>}
- calloutTitle="Требования к схеме"
- callout={<p>При UPSERT полной строки пропущенные значения могут
заменяться значениями по умолчанию или NULL. Используйте режим частичного
обновления столбцов, только если его поддерживают требуемая семантика и
реализация таблицы.</p>}
+ summary="Таблицы Unique Key поддерживают семантику UPSERT и SQL
UPDATE; таблицы Aggregate Key обновляются через объявленные для них функции
агрегации."
+ coachTitle="Обновление всей строки и отдельных столбцов требует разных
затрат."
+ coach={<p>При UPSERT всей строки передаётся полная логическая строка.
Обновление отдельных столбцов позволяет передавать меньше полей для широких
записей, но требует поддержки со стороны таблицы и настроек загрузки и может
увеличить затраты на чтение или слияние.</p>}
+ calloutTitle="Правила работы со схемой"
+ callout={<p>При UPSERT всей строки пропущенные значения могут стать
значениями по умолчанию или NULL. Используйте режим обновления отдельных
столбцов, только если он соответствует нужной семантике и поддерживается
реализацией таблицы.</p>}
check={{
- question: "Какая модель естественным образом представляет строки
CDC с актуальным состоянием?",
+ question: "Какая модель естественным образом представляет
последнее состояние строк CDC?",
options: ["Unique Key", "Duplicate Key"],
correctIndex: 0,
correctFeedback: "Верно — Unique Key применяет семантику UPSERT по
ключу.",
- incorrectFeedback: "Duplicate Key сохраняет каждую версию вместо
одной актуальной логической строки.",
+ incorrectFeedback: "Duplicate Key сохраняет каждую версию, а не
одну актуальную логическую строку.",
}}
>
<CourseComparison
ariaLabel="Обновление всей строки и отдельных столбцов"
- leftTitle="UPSERT полной строки"
- leftLead="Запишите новую логическую строку целиком."
- leftItems={["Более простая семантика", "Лучшая базовая пропускная
способность", "Пропущенные значения требуют внимания"]}
- rightTitle="Частичное обновление столбцов"
- rightLead="Запишите только выбранные поля широкой строки."
+ leftTitle="UPSERT всей строки"
+ leftLead="Записать новую логическую строку целиком."
+ leftItems={["Более простая семантика", "Лучшая пропускная
способность в базовом сценарии", "Пропущенные значения требуют внимания"]}
+ rightTitle="Обновление отдельных столбцов"
+ rightLead="Записать только выбранные поля широкой строки."
rightItems={["Меньший объём данных от клиента", "Требуется
поддерживаемый режим", "Дополнительные затраты на слияние"]}
/>
</CourseLessonUnit>
<CourseLessonUnit
id="delete-data"
- label="Удаления"
- title={<>Выберите самый узкий безопасный <em>диапазон
удаления</em>.</>}
- summary="Predicate DELETE удаляет строки по поддерживаемым условиям,
маркеры удаления при загрузке подходят для пакетов, а TRUNCATE быстро очищает
таблицу или раздел."
- coachTitle="Диапазон удаления определяет и скорость, и риск."
- coach={<p>Используйте условия только с учётом ограничений конкретной
модели таблицы. Для больших наборов ключей загружайте маркеры удаления
управляемым пакетом. Очищайте раздел или таблицу целиком, только если нужно
удалить все данные в этих пределах.</p>}
+ label="Удаление"
+ title={<>Выбирайте минимально необходимую безопасную <em>область
удаления</em>.</>}
+ summary="DELETE с условием обрабатывает поддерживаемые фильтры строк,
маркеры удаления при загрузке подходят для пакетного удаления, а TRUNCATE
быстро очищает таблицу или раздел."
+ coachTitle="Область удаления определяет и скорость, и риск."
+ coach={<p>Применяйте условия удаления с учётом ограничений конкретной
модели таблицы. Если ключей много, загружайте маркеры удаления управляемым
пакетом. Очищайте раздел или таблицу целиком, только когда нужно удалить все
данные в этой области.</p>}
calloutTitle="Возможность восстановления"
- callout={<p>Проверьте, доступно ли восстановление из корзины в целевой
версии, и избегайте операций с FORCE, если не требуется безвозвратное
удаление.</p>}
+ callout={<p>Проверьте, поддерживает ли целевая версия восстановление
из корзины, и избегайте операций с FORCE, если постоянное удаление не требуется
явно.</p>}
check={{
- question: "Какая операция подходит для удаления целой устаревшей
временной партиции?",
- options: ["TRUNCATE или удаление партиции", "Обновление
несвязанного столбца значений"],
+ question: "Какая операция подходит для удаления целого устаревшего
временного раздела?",
+ options: ["TRUNCATE или удаление раздела", "Обновление
несвязанного столбца значений"],
correctIndex: 0,
- correctFeedback: "Верно — удаление на уровне партиции точно
соответствует нужному охвату.",
- incorrectFeedback: "Обновление значений не удаляет партицию.",
+ correctFeedback: "Верно — удаление раздела соответствует нужному
объёму данных.",
+ incorrectFeedback: "Обновление значений не удаляет раздел.",
}}
>
<CourseConceptGrid
ariaLabel="Способы удаления данных в Apache Doris"
columns={3}
items={[
- { tag: 'WHERE', title: "DELETE с условием", description:
"Удаляет строки, соответствующие допустимому ограниченному условию." },
- { tag: 'BATCH', title: "Загрузка с признаком удаления",
description: "Удаляет большой набор строк по ключам через загрузку данных." },
- { tag: 'ALL', title: "TRUNCATE", description: "Очищает всю
таблицу или партицию без фильтрации строк." },
+ { tag: 'WHERE', title: "DELETE по условию", description:
"Удалить строки, соответствующие поддерживаемому ограничивающему условию." },
+ { tag: 'BATCH', title: "Загрузка с маркерами удаления",
description: "Удалить большой набор строк по ключам при загрузке данных." },
+ { tag: 'ALL', title: "TRUNCATE", description: "Очистить всю
таблицу или раздел без фильтрации строк." },
]}
/>
</CourseLessonUnit>
<CourseLessonUnit
id="export-data"
- label="Выгрузка данных"
- title={<>Подберите формат вывода под <em>потребителя</em>.</>}
- summary="SELECT INTO OUTFILE выгружает преобразованные результаты
запросов, EXPORT запускает крупные асинхронные задания на выгрузку, а mysqldump
сохраняет схему или небольшие логические наборы данных."
- coachTitle="Формат и место назначения — часть контракта."
- coach={<p>Для аналитических систем выбирайте Parquet или ORC, для
широкой совместимости — CSV. Защищайте учётные данные при работе с объектным
хранилищем или HDFS. Заранее продумайте количество файлов и степень
параллелизма для систем, которые будут читать результаты.</p>}
- calloutTitle="Синхронная и асинхронная выгрузка"
- callout={<p>OUTFILE гибко настраивается и привязан к запросу. За
крупными фоновыми заданиями проще следить через EXPORT. Ни один из этих
способов не заменяет проверенную стратегию резервного копирования и
восстановления.</p>}
+ label="Экспорт"
+ title={<>Подбирайте формат вывода под <em>потребности получателя
данных</em>.</>}
+ summary="SELECT INTO OUTFILE экспортирует преобразованные результаты
запроса, EXPORT выполняет более крупные асинхронные задания по извлечению
данных, а mysqldump сохраняет схему или небольшие логические наборы данных."
+ coachTitle="Формат и место назначения — часть требований к экспорту."
+ coach={<p>Для аналитических систем выбирайте Parquet или ORC, а для
широкой совместимости — CSV. Обеспечьте защиту учётных данных для доступа к
объектному хранилищу или HDFS. Планируйте количество файлов и степень
параллелизма с учётом потребностей систем, которые будут читать данные.</p>}
+ calloutTitle="Синхронный и асинхронный экспорт"
+ callout={<p>OUTFILE гибко настраивается и связан с запросом. За более
крупными фоновыми заданиями проще следить через EXPORT. Ни один из этих
способов не заменяет проверенную стратегию резервного копирования и
восстановления.</p>}
check={{
- question: "Какой метод позволяет преобразовать данные с помощью
SQL перед выгрузкой?",
+ question: "Какой способ позволяет преобразовать экспортируемые
результаты с помощью SQL?",
options: ["SELECT INTO OUTFILE", "SHOW BACKENDS"],
correctIndex: 0,
- correctFeedback: "Верно — SELECT формирует данные до того, как
OUTFILE запишет их.",
- incorrectFeedback: "SHOW BACKENDS показывает состав кластера; это
не способ выгрузки.",
+ correctFeedback: "Верно — SELECT формирует данные до их записи
через OUTFILE.",
+ incorrectFeedback: "SHOW BACKENDS показывает состав кластера, а не
экспортирует данные.",
}}
>
<CourseConceptGrid
- ariaLabel="Способы выгрузки данных из Apache Doris"
+ ariaLabel="Способы экспорта данных из Apache Doris"
columns={3}
items={[
- { tag: 'SQL', title: "SELECT OUTFILE", description:
"Синхронная выгрузка результатов с возможностью преобразования в CSV, Parquet
или ORC." },
- { tag: 'JOB', title: "EXPORT", description: "Асинхронная
выгрузка данных из крупных таблиц или партиций." },
- { tag: 'DDL', title: "mysqldump", description: "Выгрузка схемы
и небольших логических резервных копий с помощью инструментов MySQL." },
+ { tag: 'SQL', title: "SELECT OUTFILE", description:
"Синхронный экспорт результатов с возможностью преобразования в CSV, Parquet
или ORC." },
+ { tag: 'JOB', title: "EXPORT", description: "Асинхронное
извлечение данных из больших таблиц или разделов." },
+ { tag: 'DDL', title: "mysqldump", description: "Экспорт схемы
и небольших логических резервных копий с помощью инструментов MySQL." },
]}
/>
</CourseLessonUnit>
<CourseLessonUnit
id="operations-recap"
- label="Итоги работы с данными"
- title={<>Рассматривайте перемещение данных как <em>управляемое
изменение состояния</em>.</>}
- summary="Надёжная операция предполагает явно заданный охват, границы
гарантий корректности, наблюдаемый результат, стратегию повторного выполнения и
последующую проверку."
- coachTitle="Штатный сценарий — лишь половина плана."
- coach={<p>Зафиксируйте ответственных, учётные данные, позиции в
источнике, метки, правила контроля качества, оповещения и порядок очистки.
Отработайте частичные сбои, а после завершения проверяйте число строк или
инварианты бизнес-логики.</p>}
+ label="Итоги по операциям с данными"
+ title={<>Рассматривайте перемещение данных как <em>управляемый переход
состояния</em>.</>}
+ summary="Надёжная операция имеет чётко заданную область действия и
границу атомарности, наблюдаемый результат, стратегию повторных попыток и
проверку результата в системах, получающих данные."
+ coachTitle="Успешное выполнение — лишь часть того, что нужно
предусмотреть."
+ coach={<p>Зафиксируйте ответственных, учётные данные, метки, позиции в
источнике, правила контроля качества, оповещения и порядок очистки. Отработайте
частичные сбои, а после завершения операции проверьте количество строк или
соблюдение бизнес-инвариантов.</p>}
calloutTitle="Перед следующим уроком"
- callout={<p>Теперь, когда данные надёжны, следующий модуль расскажет,
как формулировать аналитические запросы и выбирать структуру, которую Doris
сможет эффективно выполнять.</p>}
+ callout={<p>Когда надёжность данных обеспечена, следующий модуль
поможет формулировать аналитические запросы и выбирать их структуру так, чтобы
Doris выполняла их эффективно.</p>}
check={{
- question: "Что завершает процесс после успешного выполнения
операции?",
- options: ["Проверка ожидаемого состояния данных", "Немедленное
удаление всех метаданных задания"],
+ question: "Что нужно сделать после успешного выполнения операции,
чтобы завершить процесс?",
+ options: ["Проверить, что данные находятся в ожидаемом состоянии",
"Немедленно удалить все метаданные задания"],
correctIndex: 0,
- correctFeedback: "Верно — сверьте полученные строки, партиции или
файлы с ожидаемым состоянием.",
- incorrectFeedback: "Метаданные задания полезны для аудита и
диагностики.",
+ correctFeedback: "Верно — проверьте, что полученные строки,
разделы или файлы соответствуют ожидаемому состоянию.",
+ incorrectFeedback: "Метаданные задания помогают при аудите и
диагностике неполадок.",
}}
>
<CourseConceptFlow
- ariaLabel="Цикл контроля операций с данными в Apache Doris"
+ ariaLabel="Цикл контроля операций в Apache Doris"
focusIndex={4}
items={[
- { title: "Охват", description: "Определите изменение
состояния" },
- { title: "Выполнение", description: "Используйте подходящий
метод" },
- { title: "Мониторинг", description: "Отслеживайте состояние +
качество" },
- { title: "Восстановление", description: "Повторите операцию
или компенсируйте её результат" },
- { title: "Проверка", description: "Подтвердите результат" },
+ { title: "Область действия", description: "Определить
изменение состояния" },
+ { title: "Выполнение", description: "Выбрать подходящий
способ" },
+ { title: "Мониторинг", description: "Отслеживать состояние +
качество" },
+ { title: "Восстановление", description: "Повторить операцию
или компенсировать её" },
+ { title: "Проверка", description: "Подтвердить результат" },
]}
/>
</CourseLessonUnit>
diff --git
a/translations/state/ru/pages/course/current/101/apache-doris-data-operations-guide.json
b/translations/state/ru/pages/course/current/101/apache-doris-data-operations-guide.json
index c89205f1e06d..97283d3b9eed 100644
---
a/translations/state/ru/pages/course/current/101/apache-doris-data-operations-guide.json
+++
b/translations/state/ru/pages/course/current/101/apache-doris-data-operations-guide.json
@@ -8,13 +8,23 @@
"sourceLocale": "en",
"sourcePath": "course/101/04-apache-doris-data-operations-guide.mdx",
"targetPath":
"i18n/ru/docusaurus-plugin-content-docs-course/current/101/04-apache-doris-data-operations-guide.mdx",
- "sourceCommit": "0d1f9e7894e56c20377c199a25f50d6b55023112",
+ "sourceCommit": "38d51ed68f58649235d42916d51398dc7dab6934",
"sourceHash":
"dba85eb86436c4121708351d23e5737b03701c3ee9415a4bb9b5a3449a8a33fd",
"sourceTechnicalHash":
"bab25688682f4666e72b084675b66e4a265ca54dc9612e89f9bf91333eaf8653",
- "targetHash":
"40cc845847af8f6c7f6d86d89626a59e104abb2220a92f9d032191c4621cb6a5",
+ "targetHash":
"ef3c98677233c23581ee3b2b7636fe22861d3b94f5e63e2b944577b0d6a7f925",
"reviewStatus": "machine",
"ownership": "machine",
- "translatedAt": "2026-10-24T18:05:57.423Z",
- "glossaryVersion": "1"
+ "translatedAt": "2026-10-28T20:53:01.581Z",
+ "glossaryVersion": "1",
+ "sourceRevisions": {
+ "en": {
+ "path": "course/101/04-apache-doris-data-operations-guide.mdx",
+ "blob": "1b38b0a1aafd813d5bc02833393c6515618fa6ae"
+ },
+ "zh-CN": {
+ "path":
"i18n/zh-CN/docusaurus-plugin-content-docs-course/current/101/04-apache-doris-data-operations-guide.mdx",
+ "blob": "5ad6ef82c9b2f2927bab3c1bec0f31e7c54946c6"
+ }
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]