From d55b02b47f7eefb0528629b0dfbee17d4550ad5a Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Sun, 9 Feb 2025 08:47:11 -0500 Subject: [PATCH 01/10] Add English to Japanese translatation Signed-off-by: DanRoscigno --- docs/translation/README.md | 24 +++ docs/translation/en-to-ja-configs/config.yaml | 24 +++ .../en-to-ja-configs/evaluation_prompt.txt | 9 ++ .../en-to-ja-configs/human_prompt.txt | 51 +++++++ .../en-to-ja-configs/language_dicts/en.yaml | 137 +++++++++++++++++ .../en-to-ja-configs/language_dicts/ja.yaml | 139 ++++++++++++++++++ .../en-to-ja-configs/language_dicts/zh.yaml | 139 ++++++++++++++++++ .../en-to-ja-configs/system_prompt.txt | 68 +++++++++ .../translation/scripts/en-to-ja.translate.sh | 4 + 9 files changed, 595 insertions(+) create mode 100644 docs/translation/en-to-ja-configs/config.yaml create mode 100644 docs/translation/en-to-ja-configs/evaluation_prompt.txt create mode 100644 docs/translation/en-to-ja-configs/human_prompt.txt create mode 100644 docs/translation/en-to-ja-configs/language_dicts/en.yaml create mode 100644 docs/translation/en-to-ja-configs/language_dicts/ja.yaml create mode 100644 docs/translation/en-to-ja-configs/language_dicts/zh.yaml create mode 100644 docs/translation/en-to-ja-configs/system_prompt.txt create mode 100755 docs/translation/scripts/en-to-ja.translate.sh diff --git a/docs/translation/README.md b/docs/translation/README.md index 1ee65567d8ba2..fc42cff613cde 100644 --- a/docs/translation/README.md +++ b/docs/translation/README.md @@ -54,6 +54,18 @@ The entries in the file should be relative to the `starrocks/docs/translation/` +### From English to Japanese + +`starrocks/docs/translation/files.txt` + +```bash +../en/quick_start/quick_start.md +../en/deployment/helm.md +``` + + + + ### From Chinese to English `starrocks/docs/translation/files.txt` @@ -102,6 +114,18 @@ docker run -v ./docs:/docs \ +### From English to Japanese + +```bash +docker run -v ./docs:/docs \ + --env-file ./docs/translation/.env \ + translate \ + bash /docs/translation/scripts/en-to-ja.translate.sh +``` + + + + ### From Chinese to English ```bash diff --git a/docs/translation/en-to-ja-configs/config.yaml b/docs/translation/en-to-ja-configs/config.yaml new file mode 100644 index 0000000000000..7800364fc391e --- /dev/null +++ b/docs/translation/en-to-ja-configs/config.yaml @@ -0,0 +1,24 @@ +# Logs: +debug: false # Debug mode +weave_project: "gpt-translate" # Weave project +silence_openai: true # Silence OpenAI logger + +# Translation: +language: "ja" # Language to translate to +replace: true # Replace existing file +remove_comments: true # Remove comments +do_translate_header_description: true # Translate the header description +max_openai_concurrent_calls: 7 # Max number of concurrent calls to OpenAI + +# Files: +input_file: "docs/intro.md" # File to translate +out_file: " intro_ja.md" # File to save the translated file to +input_folder: ../en # Folder to translate +out_folder: ../ja # Folder to save the translated files to + +limit: null # Limit number of files to translate (useful for testing) + +# Model: +model: "gpt-4o" +temperature: 0.2 +max_tokens: 4096 diff --git a/docs/translation/en-to-ja-configs/evaluation_prompt.txt b/docs/translation/en-to-ja-configs/evaluation_prompt.txt new file mode 100644 index 0000000000000..973067af151b0 --- /dev/null +++ b/docs/translation/en-to-ja-configs/evaluation_prompt.txt @@ -0,0 +1,9 @@ +How good is the translation regarding the instructions you were given? Provide a detailed analysis. +Return a json object with the following keys: +- analysis: a detailed analysis of the translation +- completeness: a boolean indicating if the translation is complete, not missing a piece at the end. +- translation_rating: a rating from 1 to 10 indicating the quality of the translation +- product_words: A boolean indicating if the translation respects the given dictionary, check carefully the dictionary with the corresponding translation. Make sure not translating Weights & Biases product terms. +- code_comments: A boolean indicating if the code comments are translated correctly +- links: A boolean indicating if the links are translated correctly + diff --git a/docs/translation/en-to-ja-configs/human_prompt.txt b/docs/translation/en-to-ja-configs/human_prompt.txt new file mode 100644 index 0000000000000..6f745c7c764c6 --- /dev/null +++ b/docs/translation/en-to-ja-configs/human_prompt.txt @@ -0,0 +1,51 @@ +Regarding StarRocks specifics, we have a list of product names and technical phrases that are always associated to the product and *never* to be translated. Keep them in English. +- StarRocks +- starrocks +- external catalog +- catalog +- Default Catalog +- Hive +- Leader FE +- Follower FE +- Observer FE +- tablet +- property enforcement +- Operator +- Data Cache +- Query Cache +- Delete Vector +- Compaction +- Stream Load +- Broker Load +- Routine Load +- Spark Load +- schema change +- Colocate Join +- Lateral Join +- Shuffle Join +- Broadcast Join +- Colocation Group +- Sorted streaming aggregate +- Flat JSON +- Query Profile +- Information Schema +- Docker +- Kubernetes +- Kubernetes secret + +These words appear often on lists like this: + +1. [**word**](link/target.md): Something about StarRocks +2. [**word2**](link/target2.md): Something about StarRocks again +etc... + +Never translate them in this context. + +Here is a chunk of documentation in docusaurus Markdown format to translate. + +```markdown +{md_chunk} +``` + +Return the translation only in markdown format, without adding anything else. Do not add the ```markdown``` tags or any backticks. + diff --git a/docs/translation/en-to-ja-configs/language_dicts/en.yaml b/docs/translation/en-to-ja-configs/language_dicts/en.yaml new file mode 100644 index 0000000000000..86512f0a1a8bf --- /dev/null +++ b/docs/translation/en-to-ja-configs/language_dicts/en.yaml @@ -0,0 +1,137 @@ +数据导入: Data loading +数据导出: Data unloading +导入: load +内表: native table +存算分离表: Cloud-native table +外部表: External Table +文件外部表: File External Table +Hive 外表: Hive external table +数据库模式层次结构: hierarchy of data objects +存储分层: storage layering +存算分离: separation of storage and compute +存算分离模式: shared-data mode +存算一体模式: shared-nothing mode +存算分离集群: shared-data cluster +存算一体集群: shared-nothing cluster +0数据迁移: zero-migration +原生向量化引擎: native vectorized engine +联邦查询: federated query +列式存储: columnar storage +行存储: row storage +智能物化视图: intelligent materialized view +基表: base table +物化视图: materialized view +同步物化视图: synchronous materialized view +异步物化视图: asynchronous materialized view +流批一体: unified batch and streaming +高可用: high availability +高可扩展性: high scalability +数据摄取: data ingestion +大宽表: denormalized table/flat table +预聚合: pre-aggregation +聚合查询: aggregate query +星形模型: star schema +雪花模型: snowflake schema +点查询: point query +表模型: table type +明细表: Duplicate Key table +聚合表: Aggregate table +主键表: Primary Key table +更新表: Unique Key table +数据清洗: data cleaning +全局字典: global dictionary +全局低基数字典优化: global dictionary for low-cardinality optimization +低基数: low cardinality +仓储物流: warehousing logistics +查询性能: query performance +数据采集: data acquisition +多表关联查询: multi-table join query +CBO优化器: cost-based optimizer +存算分离: separation of storage and compute +成本估算: cost estimation +二叉树: binary tree +数据分析: data analytics +数据湖分析: data lake analytics +明细数据: detailed data +去重: distinct count +精准去重: exact distinct count +近似去重: approximate distinct count +表结构: table schema +排序键: sort key +分桶键: bucketing key +分区列: partitioning column +分区键: partition key +随机分桶: random bucketing +分区方式: partitioning method +自动分区: automatic partitioning +动态分区: dynamic partitioning +表达式分区: expresion partitioning +LIST 分区: list partitioning +副本: replica +用户画像: user profiling +用户留存: user retention +精准营销: precision marketing +群体分析: group analysis +延迟物化: late materialization +数据局部性: data locality +前缀索引: prefix index +后置列: suffix column +前置列: prefix column +分级存储: tiered storage +倒排索引: inverted indexing +近似算法: approximation algorithm +嵌套查询: nested query +内存泄漏: memory leak +内存膨胀: memory bloat +二次分区: secondary partitioning +分区裁剪: pruning +分区文件: partition file +抽象语法树: abstract syntax tree +常量折叠: constant folding +常量传播: constant propagation +悲观加锁: pessimistic locking +乐观加锁: optimistic locking +滚动升级: rolling update +分层搜索: stratified search +统一搜索: unified search +给表添加数据: populate a table +工作目录: working directory +计算节点: compute node +计算引擎: compute engine +等深直方图: equi-height histogram +等宽直方图: equi-width histogram +分页查询: paginated query +相关列: correlated columns +字面量: literal +生成列: generated column +自增列: auto increment +云原生: cloud-native +持久化索引: persistent index +工具函数: utility function +聚合函数: aggregate function +中间结果落盘: spill to disk +查询改写: query rewrite +数据均衡: data re-distribution +本地磁盘: local disk +自动降冷: automatic cooldown +存储介质: storage medium +垃圾回收: garbage collection +会话变量: session variable +全局变量: global variable +大查询: big query +分类器: classifier +存储卷: storage volume +远端存储: remote storage +基数保持 JOIN: cardinality-preserving join +并行度: parallelism +部分列更新: partial update +条件更新: conditional update +高阶函数: higher-order function +异步刷新: async refresh +查询加速: query acceleration +Segment 文件: segment file +行列混存: Hybrid row-column storage +List 分区: List Partitioning +Range 分区: Range Partitioning +Bitmap 索引: Bitmap index +Bloom filter 索引: Bloom filter index diff --git a/docs/translation/en-to-ja-configs/language_dicts/ja.yaml b/docs/translation/en-to-ja-configs/language_dicts/ja.yaml new file mode 100644 index 0000000000000..dfad1ab71cc5e --- /dev/null +++ b/docs/translation/en-to-ja-configs/language_dicts/ja.yaml @@ -0,0 +1,139 @@ +FEs: FE +BEs: BE +Data loading: 数据导入 +Data unloading: 数据导出 +load: 导入 +native table: 内表 +Cloud-native table: 存算分离表 +External Table: 外部表 +File External Table: 文件外部表 +Hive external table: Hive 外表 +hierarchy of data objects: 数据库模式层次结构 +storage layering: 存储分层 +separation of storage and compute: 存算分离 +shared-data mode: 存算分离模式 +shared-nothing mode: 存算一体模式 +shared-data cluster: 存算分离集群 +shared-nothing cluster: 存算一体集群 +zero-migration: 0数据迁移 +native vectorized engine: 原生向量化引擎 +query federation/federated query: 联邦查询 +columnar storage: 列式存储 +row storage: 行存储 +intelligent materialized view: 智能物化视图 +base table: 基表 +materialized view: 物化视图 +synchronous materialized view: 同步物化视图 +asynchronous materialized view: 异步物化视图 +unified batch and streaming,batch-stream integrated: 流批一体 +high availability: 高可用 +high scalability: 高可扩展性 +data ingestion: 数据摄取 +denormalized table/flat table: 大宽表 +pre-aggregation: 预聚合 +aggregate query: 聚合查询 +star schema: 星形模型 +snowflake schema: 雪花模型 +point query: 点查询 +table type: 表模型 +Duplicate Key table: 明细表 +Aggregate table: 聚合表 +Primary Key table: 主键表 +Unique Key table: 更新表 +data cleaning: 数据清洗 +global dictionary: 全局字典 +global dictionary for low-cardinality optimization: 全局低基数字典优化 +low cardinality: 低基数 +warehousing logistics: 仓储物流 +query performance: 查询性能 +data acquisition: 数据采集 +multi-table join query: 多表关联查询 +cost-based optimizer: CBO优化器 +separation of storage and compute: 存算分离 +cost estimation: 成本估算 +binary tree: 二叉树 +data analytics: 数据分析 +data lake analytics: 数据湖分析 +detailed data: 明细数据 +distinct count: 去重 +exact distinct count: 精准去重 +approximate distinct count: 近似去重 +table schema: 表结构 +sort key: 排序键 +bucketing key: 分桶键 +partitioning column: 分区列 +partition key: 分区键 +random bucketing: 随机分桶 +partitioning method: 分区方式 +automatic partitioning: 自动分区 +dynamic partitioning: 动态分区 +expresion partitioning: 表达式分区 +list partitioning: LIST 分区 +replica: 副本 +user profiling: 用户画像 +user retention: 用户留存 +precision marketing: 精准营销 +group analysis: 群体分析 +late materialization: 延迟物化 +data locality: 数据局部性 +prefix index: 前缀索引 +suffix column: 后置列 +prefix column: 前置列 +tiered storage: 分级存储 +inverted indexing: 倒排索引 +approximation algorithm: 近似算法 +nested query: 嵌套查询 +memory leak: 内存泄漏 +memory bloat: 内存膨胀 +secondary partitioning: 二次分区 +pruning: 分区裁剪 +partition file: 分区文件 +abstract syntax tree: 抽象语法树 +constant folding: 常量折叠 +constant propagation: 常量传播 +pessimistic locking: 悲观加锁 +optimistic locking: 乐观加锁 +rolling update: 滚动升级 +stratified search: 分层搜索 +unified search: 统一搜索 +populate a table: 给表添加数据 +working directory: 工作目录 +compute node: 计算节点 +compute engine: 计算引擎 +equi-height histogram: 等深直方图 +equi-width histogram: 等宽直方图 +paginated query: 分页查询 +correlated columns: 相关列 +literal: 字面量 +generated column: 生成列 +auto increment: 自增列 +cloud-native: 云原生 +persistent index: 持久化索引 +utility function: 工具函数 +aggregate function: 聚合函数 +spill to disk: 中间结果落盘 +query rewrite: 查询改写 +data re-distribution: 数据均衡 +local disk: 本地磁盘 +automatical cooldown: 自动降冷 +storage medium: 存储介质 +garbage collection: 垃圾回收 +session variable: 会话变量 +global variable: 全局变量 +big query: 大查询 +classifier: 分类器 +storage volume: 存储卷 +remote storage: 远端存储 +cardinality-preserving join: 基数保持 JOIN +parallelism: 并行度 +partial update: 部分列更新 +conditional update: 条件更新 +higher-order function: 高阶函数 +async refresh: 异步刷新 +query acceleration: 查询加速 +segment file: Segment 文件 +Hybrid row-column storage: 行列混存 +List Partitioning: List 分区 +Range Partitioning: Range 分区 +Bitmap index: Bitmap 索引 +Bloom filter index: Bloom filter 索引 diff --git a/docs/translation/en-to-ja-configs/language_dicts/zh.yaml b/docs/translation/en-to-ja-configs/language_dicts/zh.yaml new file mode 100644 index 0000000000000..dfad1ab71cc5e --- /dev/null +++ b/docs/translation/en-to-ja-configs/language_dicts/zh.yaml @@ -0,0 +1,139 @@ +FEs: FE +BEs: BE +Data loading: 数据导入 +Data unloading: 数据导出 +load: 导入 +native table: 内表 +Cloud-native table: 存算分离表 +External Table: 外部表 +File External Table: 文件外部表 +Hive external table: Hive 外表 +hierarchy of data objects: 数据库模式层次结构 +storage layering: 存储分层 +separation of storage and compute: 存算分离 +shared-data mode: 存算分离模式 +shared-nothing mode: 存算一体模式 +shared-data cluster: 存算分离集群 +shared-nothing cluster: 存算一体集群 +zero-migration: 0数据迁移 +native vectorized engine: 原生向量化引擎 +query federation/federated query: 联邦查询 +columnar storage: 列式存储 +row storage: 行存储 +intelligent materialized view: 智能物化视图 +base table: 基表 +materialized view: 物化视图 +synchronous materialized view: 同步物化视图 +asynchronous materialized view: 异步物化视图 +unified batch and streaming,batch-stream integrated: 流批一体 +high availability: 高可用 +high scalability: 高可扩展性 +data ingestion: 数据摄取 +denormalized table/flat table: 大宽表 +pre-aggregation: 预聚合 +aggregate query: 聚合查询 +star schema: 星形模型 +snowflake schema: 雪花模型 +point query: 点查询 +table type: 表模型 +Duplicate Key table: 明细表 +Aggregate table: 聚合表 +Primary Key table: 主键表 +Unique Key table: 更新表 +data cleaning: 数据清洗 +global dictionary: 全局字典 +global dictionary for low-cardinality optimization: 全局低基数字典优化 +low cardinality: 低基数 +warehousing logistics: 仓储物流 +query performance: 查询性能 +data acquisition: 数据采集 +multi-table join query: 多表关联查询 +cost-based optimizer: CBO优化器 +separation of storage and compute: 存算分离 +cost estimation: 成本估算 +binary tree: 二叉树 +data analytics: 数据分析 +data lake analytics: 数据湖分析 +detailed data: 明细数据 +distinct count: 去重 +exact distinct count: 精准去重 +approximate distinct count: 近似去重 +table schema: 表结构 +sort key: 排序键 +bucketing key: 分桶键 +partitioning column: 分区列 +partition key: 分区键 +random bucketing: 随机分桶 +partitioning method: 分区方式 +automatic partitioning: 自动分区 +dynamic partitioning: 动态分区 +expresion partitioning: 表达式分区 +list partitioning: LIST 分区 +replica: 副本 +user profiling: 用户画像 +user retention: 用户留存 +precision marketing: 精准营销 +group analysis: 群体分析 +late materialization: 延迟物化 +data locality: 数据局部性 +prefix index: 前缀索引 +suffix column: 后置列 +prefix column: 前置列 +tiered storage: 分级存储 +inverted indexing: 倒排索引 +approximation algorithm: 近似算法 +nested query: 嵌套查询 +memory leak: 内存泄漏 +memory bloat: 内存膨胀 +secondary partitioning: 二次分区 +pruning: 分区裁剪 +partition file: 分区文件 +abstract syntax tree: 抽象语法树 +constant folding: 常量折叠 +constant propagation: 常量传播 +pessimistic locking: 悲观加锁 +optimistic locking: 乐观加锁 +rolling update: 滚动升级 +stratified search: 分层搜索 +unified search: 统一搜索 +populate a table: 给表添加数据 +working directory: 工作目录 +compute node: 计算节点 +compute engine: 计算引擎 +equi-height histogram: 等深直方图 +equi-width histogram: 等宽直方图 +paginated query: 分页查询 +correlated columns: 相关列 +literal: 字面量 +generated column: 生成列 +auto increment: 自增列 +cloud-native: 云原生 +persistent index: 持久化索引 +utility function: 工具函数 +aggregate function: 聚合函数 +spill to disk: 中间结果落盘 +query rewrite: 查询改写 +data re-distribution: 数据均衡 +local disk: 本地磁盘 +automatical cooldown: 自动降冷 +storage medium: 存储介质 +garbage collection: 垃圾回收 +session variable: 会话变量 +global variable: 全局变量 +big query: 大查询 +classifier: 分类器 +storage volume: 存储卷 +remote storage: 远端存储 +cardinality-preserving join: 基数保持 JOIN +parallelism: 并行度 +partial update: 部分列更新 +conditional update: 条件更新 +higher-order function: 高阶函数 +async refresh: 异步刷新 +query acceleration: 查询加速 +segment file: Segment 文件 +Hybrid row-column storage: 行列混存 +List Partitioning: List 分区 +Range Partitioning: Range 分区 +Bitmap index: Bitmap 索引 +Bloom filter index: Bloom filter 索引 diff --git a/docs/translation/en-to-ja-configs/system_prompt.txt b/docs/translation/en-to-ja-configs/system_prompt.txt new file mode 100644 index 0000000000000..38694498417d9 --- /dev/null +++ b/docs/translation/en-to-ja-configs/system_prompt.txt @@ -0,0 +1,68 @@ +# Instructions + +You are a documentation translation assistant for the StarRocks OLAP database project developer documentation. You translate from English to Japanese. You are translating valid docusaurus flavored mdx. + +Some rules to remember: + +- Do not add extra blank lines. +- Do not remove or translate import statements. +- The results must be valid docusaurus mdx +- It is important to maintain the accuracy of the contents but we don't want the output to read like it's been translated. So instead of translating word by word, prioritize naturalness and ease of communication. +- In code blocks, **never** translate anything + +## Dictionary + +Here is the translation dictionary for domain specific words. Always translate the words in the dictionary as specified. + +```yaml +{dictionary} +``` + +## Formatting Rules + +- Do not translate target markdown links. Never translate the part of the link inside (). For instance here [https://wandb.ai/site](https://wandb.ai/site) do not translate anything, but on this, you should translate the [] part: +[track metrics](./guides/track.md), [create logs](./guides/artifacts.md). +- Beware with and formatting. Respect spacing and newlines around this important constructs. Specially after lists, be sure to keep the same spacing. It is a double newline after the list. +- For inline formatting (italic, bold, strikethrough, inline code) in Japanese, consider adding spaces before and after when applying to part of a word/phrase. For example "_A_ and _B_" should be translated as "_A_ と _B_", not "_A_と_B_". Without spaces, the translated markdown does not work. + +## High-Level Instructions for Evidence-Based Narrative +1. **Clarity and Precision:** +- Write with clarity and precision, avoiding jargon or overly complex language. +- Each sentence should convey a clear and specific idea. +- Avoid ambiguous terms and ensure that every statement is easily understandable. +2. **Evidence-Driven Assertions:** +- Base every claim on concrete evidence, using data, statistics, and factual information. +- Provide specific numbers, dates, and sources to back up assertions. +- Example: "Cobot has raised $41.625M to date, including a $30M Series A led by Sequoia Capital in July 2023." +3. **Logical Flow and Structure:** +- Structure the narrative logically, with each paragraph leading naturally to the next. +- Use clear transitions to guide the reader through the argument or narrative. +- Ensure that the overall flow supports a cohesive and compelling story. +4. **Active Voice:** +- Use active voice to make sentences more direct and impactful. +- Example: "Cobot deployed its first robots in January 2024" instead of "The first robots were deployed by Cobot in January 2024." +5. **Conciseness:** +- Be concise, eliminating unnecessary words and focusing on essential information. +- Each sentence and paragraph should add value to the narrative. +- Example: "Our robot can pull carts up to 1500lbs and travel up to 8mph" instead of "Our robot has the capability to pull carts that can weigh as much as 1500lbs and can travel at speeds up to 8mph." +6. **Compelling Storytelling:** +- Frame the narrative to tell a compelling story, highlighting the journey, challenges, and achievements. +- Use storytelling techniques to engage the reader and make the narrative more relatable and interesting. +- Example: "In just two years, Cobot transformed the landscape of material handling with innovative robotics solutions." +7. **Customer and Market Focus:** +- Emphasize customer needs and market opportunities. +- Show how the product or solution addresses specific pain points and offers tangible benefits. +- Example: "In highly automated facilities, our robots reduce injuries and increase productivity by automating heavy lifting tasks." +8. **Credibility and Authority:** +- Establish credibility by mentioning reputable investors, notable team members, and successful deployments. +- Highlight the expertise and experience of the team to build trust. +- Example: "Our team includes former directors from Amazon and NASA JPL, bringing unparalleled expertise in robotics." +9. **Balanced Tone:** +- Maintain a balanced tone that is confident yet humble. +- Avoid exaggeration and hyperbole; let the evidence speak for itself. +- Example: "We aim to revolutionize the industry with practical, reliable robotics solutions, grounded in years of research and field experience." +10. **Conclusion with Impact:** +- End with a strong conclusion that reinforces the main points and leaves a lasting impression. +- Include a clear call to action or next steps. +- Example: "Join us as we continue to innovate and lead the future of robotics. Our next funding round closes on March 15th." + diff --git a/docs/translation/scripts/en-to-ja.translate.sh b/docs/translation/scripts/en-to-ja.translate.sh new file mode 100755 index 0000000000000..307e6f92252ae --- /dev/null +++ b/docs/translation/scripts/en-to-ja.translate.sh @@ -0,0 +1,4 @@ +cd /docs/translation/ +rm -rf configs +cp -r en-to-ja-configs configs +gpt_translate.files --input_file ./files.txt --config_folder ./configs --language ja From b8ad78fe5ca95cd62e3e5289078c7836f72f452c Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Sun, 9 Feb 2025 09:25:13 -0500 Subject: [PATCH 02/10] Add English to Japanese translatation Signed-off-by: DanRoscigno --- docs/ja/deployment/helm.md | 145 ++++++ docs/ja/quick_start/routine-load.md | 687 ++++++++++++++++++++++++++++ docs/translation/README.md | 14 +- 3 files changed, 843 insertions(+), 3 deletions(-) create mode 100644 docs/ja/deployment/helm.md create mode 100644 docs/ja/quick_start/routine-load.md diff --git a/docs/ja/deployment/helm.md b/docs/ja/deployment/helm.md new file mode 100644 index 0000000000000..33a50f53d2d5e --- /dev/null +++ b/docs/ja/deployment/helm.md @@ -0,0 +1,145 @@ +--- +displayed_sidebar: docs +--- + +# Deploy StarRocks with Helm + +[Helm](https://helm.sh/) は、Kubernetes のパッケージマネージャーです。[Helm Chart](https://helm.sh/docs/topics/charts/) は Helm パッケージであり、Kubernetes クラスター上でアプリケーションを実行するために必要なすべてのリソース定義を含んでいます。このトピックでは、Helm を使用して Kubernetes クラスター上に StarRocks クラスターを自動的にデプロイする方法について説明します。 + +## 始める前に + +- [Kubernetes クラスターを作成する](./sr_operator.md#create-kubernetes-cluster)。 +- [Helm をインストールする](https://helm.sh/docs/intro/quickstart/)。 + +## 手順 + +1. StarRocks の Helm Chart リポジトリを追加します。Helm Chart には、StarRocks Operator とカスタムリソース StarRocksCluster の定義が含まれています。 + 1. Helm Chart リポジトリを追加します。 + + ```Bash + helm repo add starrocks https://starrocks.github.io/starrocks-kubernetes-operator + ``` + + 2. Helm Chart リポジトリを最新バージョンに更新します。 + + ```Bash + helm repo update + ``` + + 3. 追加した Helm Chart リポジトリを表示します。 + + ```Bash + $ helm search repo starrocks + NAME CHART VERSION APP VERSION DESCRIPTION + starrocks/kube-starrocks 1.8.0 3.1-latest kube-starrocks includes two subcharts, starrock... + starrocks/operator 1.8.0 1.8.0 A Helm chart for StarRocks operator + starrocks/starrocks 1.8.0 3.1-latest A Helm chart for StarRocks cluster + ``` + +2. Helm Chart のデフォルトの **[values.yaml](https://github.com/StarRocks/starrocks-kubernetes-operator/blob/main/helm-charts/charts/kube-starrocks/values.yaml)** を使用して StarRocks Operator と StarRocks クラスターをデプロイするか、YAML ファイルを作成してデプロイメント設定をカスタマイズします。 + 1. デフォルト設定でのデプロイメント + + 次のコマンドを実行して、1つの FE と 1つの BE からなる StarRocks Operator と StarRocks クラスターをデプロイします。 + > ヒント + > + > デフォルトの `values.yaml` は次のように設定されています: + > - オペレーターポッドは 1/2CPU と 0.8GB RAM + > - 1つの FE は 4GB RAM、4コア、15Gi ディスク + > - 1つの BE は 4GB RAM、4コア、1Ti ディスク + > + > これらのリソースが Kubernetes クラスターで利用できない場合は、**カスタム設定でのデプロイメント** セクションに進み、リソースを調整してください。 + + ```Bash + $ helm install starrocks starrocks/kube-starrocks + # 次の結果が返された場合、StarRocks Operator と StarRocks クラスターがデプロイ中です。 + NAME: starrocks + LAST DEPLOYED: Tue Aug 15 15:12:00 2023 + NAMESPACE: starrocks + STATUS: deployed + REVISION: 1 + TEST SUITE: None + ``` + +3. カスタム設定でのデプロイメント + - 例えば **my-values.yaml** という YAML ファイルを作成し、その中で StarRocks Operator と StarRocks クラスターの設定をカスタマイズします。サポートされているパラメータと説明については、Helm Chart のデフォルト **[values.yaml](https://github.com/StarRocks/starrocks-kubernetes-operator/blob/main/helm-charts/charts/kube-starrocks/values.yaml)** のコメントを参照してください。 + - 次のコマンドを実行して、**my-values.yaml** のカスタム設定で StarRocks Operator と StarRocks クラスターをデプロイします。 + + ```bash + helm install -f my-values.yaml starrocks starrocks/kube-starrocks + ``` + + デプロイメントには時間がかかります。この間、次のコマンドでデプロイメントのステータスを確認できます。 + + ```bash + kubectl --namespace default get starrockscluster -l "cluster=kube-starrocks" + ``` + 次の結果が返された場合、デプロイメントは正常に完了しています。 + + ```bash + NAME PHASE FESTATUS BESTATUS CNSTATUS FEPROXYSTATUS + kube-starrocks running running running + ``` + + また、`kubectl get pods` を実行してデプロイメントのステータスを確認することもできます。すべての Pod が `Running` 状態で、Pod 内のすべてのコンテナが `READY` であれば、デプロイメントは正常に完了しています。 + + ```bash + kubectl get pods + ``` + + ```bash + NAME READY STATUS RESTARTS AGE + kube-starrocks-be-0 1/1 Running 0 2m50s + kube-starrocks-fe-0 1/1 Running 0 4m31s + kube-starrocks-operator-69c5c64595-pc7fv 1/1 Running 0 4m50s + ``` + +## 次のステップ + +- StarRocks クラスターにアクセスする + + Kubernetes クラスターの内外から StarRocks クラスターにアクセスできます。詳細な手順については、[Access StarRocks Cluster](./sr_operator.md#access-starrocks-cluster) を参照してください。 + +- StarRocks operator と StarRocks クラスターを管理する + + - StarRocks operator と StarRocks クラスターの設定を更新する必要がある場合は、[Helm Upgrade](https://helm.sh/docs/helm/helm_upgrade/) を参照してください。 + - StarRocks Operator と StarRocks クラスターをアンインストールする必要がある場合は、次のコマンドを実行します。 + + ```bash + helm uninstall starrocks + ``` + +## 詳細情報 + +- GitHub リポジトリのアドレス: [starrocks-kubernetes-operator and kube-starrocks Helm Chart](https://github.com/StarRocks/starrocks-kubernetes-operator)。 + +- GitHub リポジトリのドキュメントには、さらに詳しい情報が記載されています。例えば: + + - Kubernetes API を介して StarRocks クラスターのようなオブジェクトを管理する必要がある場合は、[API reference](https://github.com/StarRocks/starrocks-kubernetes-operator/blob/main/doc/api.md) を参照してください。 + + - FE および BE ポッドに永続ボリュームをマウントして、FE メタデータとログ、BE データとログを保存する必要がある場合は、[Mount Persistent Volumes by Helm Chart](https://github.com/StarRocks/starrocks-kubernetes-operator/blob/main/doc/mount_persistent_volume_howto.md#2-mounting-persistent-volumes-by-helm-chart) を参照してください。 + + :::danger + + 永続ボリュームがマウントされていない場合、StarRocks Operator は emptyDir を使用して FE メタデータとログ、BE データとログを保存します。コンテナが再起動すると、データは失われます。 + + ::: + + - ルートユーザーのパスワードを設定する必要がある場合: + + - StarRocks クラスターをデプロイした後に手動でルートユーザーのパスワードを設定するには、[Change root user password HOWTO](https://github.com/StarRocks/starrocks-kubernetes-operator/blob/main/doc/change_root_password_howto.md) を参照してください。 + + - StarRocks クラスターをデプロイする際にルートユーザーのパスワードを自動的に設定するには、[Initialize root user password](https://github.com/StarRocks/starrocks-kubernetes-operator/blob/main/doc/initialize_root_password_howto.md) を参照してください。 + +- StarRocks 存算分离集群で CREATE TABLE ステートメントを実行した後に発生する次のエラーを解決する方法。 + + - **エラーメッセージ** + + ```plaintext + ERROR 1064 (HY000): Table replication num should be less than or equal to the number of available BE nodes. You can change this default by setting the replication_num table properties. Current alive backend is [10001]. , table=orders1, default_replication_num=3 + ``` + + - **解決策** + + これは、StarRocks 存算分离集群に BE が1つしか存在せず、1つの副本しかサポートしていないためかもしれません。しかし、デフォルトの副本数は3です。副本数を1に変更するには、PROPERTIES で `PROPERTIES( "replication_num" = "1" )` のように設定できます。 + +- Artifact Hub 上で StarRocks によって維持されている Helm Chart のアドレス: [kube-starrocks](https://artifacthub.io/packages/helm/kube-starrocks/kube-starrocks)。 \ No newline at end of file diff --git a/docs/ja/quick_start/routine-load.md b/docs/ja/quick_start/routine-load.md new file mode 100644 index 0000000000000..794f43a89972d --- /dev/null +++ b/docs/ja/quick_start/routine-load.md @@ -0,0 +1,687 @@ +--- +description: Kafka Routine Load と共有データストレージ +displayed_sidebar: docs +--- + +# Kafka routine load StarRocks using shared-data storage + +import Clients from '../_assets/quick-start/_clientsCompose.mdx' +import SQL from '../_assets/quick-start/_SQL.mdx' + +## About Routine Load + +Routine Loadは、Apache Kafka、またはこのラボではRedpandaを使用して、データをStarRocksに継続的にストリーミングする方法です。データはKafkaトピックにストリームされ、Routine LoadジョブがそのデータをStarRocksに取り込みます。Routine Loadの詳細は、ラボの最後に提供されています。 + +## About shared-data + +ストレージと計算を分離するシステムでは、データはAmazon S3、Google Cloud Storage、Azure Blob Storage、その他のS3互換ストレージ(MinIOなど)のような低コストで信頼性のある遠端ストレージシステムに保存されます。ホットデータは本地でキャッシュされ、キャッシュがヒットすると、查询性能はストレージと計算が結合されたアーキテクチャと同等になります。計算节点(CN)は、数秒以内にオンデマンドで追加または削除できます。このアーキテクチャは、ストレージコストを削減し、リソースの分離を改善し、弾力性とスケーラビリティを提供します。 + +このチュートリアルでは以下をカバーします: + +- Docker Composeを使用してStarRocks、Redpanda、MinIOを実行する +- MinIOをStarRocksのストレージ層として使用する +- StarRocksをshared-data用に設定する +- Redpandaからデータを取り込むためのRoutine Loadジョブを追加する + +使用されるデータは合成データです。 + +このドキュメントには多くの情報が含まれており、最初にステップバイステップの内容が提示され、技術的な詳細が最後に示されています。これは次の目的を順に果たすためです: + +1. Routine Loadを設定する。 +2. 読者がshared-dataデプロイメントでデータを导入し、そのデータを分析できるようにする。 +3. shared-dataデプロイメントの設定詳細を提供する。 + +--- + +## Prerequisites + +### Docker + +- [Docker](https://docs.docker.com/engine/install/) +- Dockerに割り当てられた4 GBのRAM +- Dockerに割り当てられた10 GBの空きディスクスペース + +### SQL client + +Docker環境で提供されるSQLクライアントを使用するか、システム上のものを使用できます。多くのMySQL互換クライアントが動作し、このガイドではDBeaverとMySQL Workbenchの設定をカバーしています。 + +### curl + +`curl`はComposeファイルとデータを生成するスクリプトをダウンロードするために使用されます。OSプロンプトで`curl`または`curl.exe`を実行してインストールされているか確認してください。curlがインストールされていない場合は、[こちらからcurlを入手してください](https://curl.se/dlwiz/?type=bin)。 + +### Python + +Python 3とApache Kafka用のPythonクライアント`kafka-python`が必要です。 + +- [Python](https://www.python.org/) +- [`kafka-python`](https://pypi.org/project/kafka-python/) + +--- + +## Terminology + +### FE + +フロントエンドノードは、メタデータ管理、クライアント接続管理、クエリプランニング、およびクエリスケジューリングを担当します。各FEはメモリ内にメタデータの完全なコピーを保存および維持し、FEs間での無差別なサービスを保証します。 + +### CN + +計算节点は、shared-dataデプロイメントでクエリプランを実行する役割を担います。 + +### BE + +バックエンドノードは、shared-nothingデプロイメントでデータストレージとクエリプランの実行の両方を担当します。 + +:::note +このガイドではBEsを使用しませんが、BEsとCNsの違いを理解するためにこの情報を含めています。 +::: + +--- + +## Launch StarRocks + +Object Storageを使用してshared-dataでStarRocksを実行するには、以下が必要です: + +- フロントエンドエンジン(FE) +- 計算节点(CN) +- Object Storage + +このガイドでは、S3互換のObject StorageプロバイダーであるMinIOを使用します。MinIOはGNU Affero General Public Licenseの下で提供されています。 + +### Download the lab files + +#### `docker-compose.yml` + +```bash +mkdir routineload +cd routineload +curl -O https://raw.githubusercontent.com/StarRocks/demo/master/documentation-samples/routine-load-shared-data/docker-compose.yml +``` + +#### `gen.py` + +`gen.py`は、Apache Kafka用のPythonクライアントを使用してデータをKafkaトピックに公開(生成)するスクリプトです。このスクリプトはRedpandaコンテナのアドレスとポートで記述されています。 + +```bash +curl -O https://raw.githubusercontent.com/StarRocks/demo/master/documentation-samples/routine-load-shared-data/gen.py +``` + +## Start StarRocks, MinIO, and Redpanda + +```bash +docker compose up --detach --wait --wait-timeout 120 +``` + +サービスの進行状況を確認します。コンテナが正常になるまで30秒以上かかる場合があります。`routineload-minio_mc-1`コンテナは健康指標を表示せず、StarRocksが使用するアクセスキーでMinIOを設定し終わると終了します。`routineload-minio_mc-1`が`0`コードで終了し、他のサービスが`Healthy`になるのを待ちます。 + +サービスが正常になるまで`docker compose ps`を実行します: + +```bash +docker compose ps +``` + +```plaintext +WARN[0000] /Users/droscign/routineload/docker-compose.yml: `version` is obsolete +[+] Running 6/7 + ✔ Network routineload_default Crea... 0.0s + ✔ Container minio Healthy 5.6s + ✔ Container redpanda Healthy 3.6s + ✔ Container redpanda-console Healt... 1.1s + ⠧ Container routineload-minio_mc-1 Waiting 23.1s + ✔ Container starrocks-fe Healthy 11.1s + ✔ Container starrocks-cn Healthy 23.0s +container routineload-minio_mc-1 exited (0) +``` + +--- + +## Examine MinIO credentials + +StarRocksでObject StorageとしてMinIOを使用するためには、StarRocksがMinIOアクセスキーを必要とします。アクセスキーはDockerサービスの起動時に生成されました。StarRocksがMinIOに接続する方法をよりよく理解するために、キーが存在することを確認してください。 + +### Open the MinIO web UI + +http://localhost:9001/access-keys にアクセスします。ユーザー名とパスワードはDocker composeファイルに指定されており、`miniouser`と`miniopassword`です。1つのアクセスキーがあることが確認できるはずです。キーは`AAAAAAAAAAAAAAAAAAAA`で、MinIOコンソールではシークレットは表示されませんが、Docker composeファイルにあり、`BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB`です: + +![View the MinIO access key](../_assets/quick-start/MinIO-view-key.png) + +--- + +## SQL Clients + + +--- + +## StarRocks configuration for shared-data + +この時点で、StarRocks、Redpanda、およびMinIOが実行されています。MinIOアクセスキーはStarRocksとMinioを接続するために使用されます。StarRocksが起動すると、MinIOとの接続が確立され、MinIOにデフォルトの存储卷が作成されました。 + +これは、MinIOを使用するためにデフォルトの存储卷を設定するために使用される設定です(これもDocker composeファイルにあります)。設定はこのガイドの最後で詳細に説明されますが、今は`aws_s3_access_key`がMinIOコンソールで見た文字列に設定されていることと、`run_mode`が`shared_data`に設定されていることに注意してください。 + +```plaintext +#highlight-start +# enable shared data, set storage type, set endpoint +run_mode = shared_data +#highlight-end +cloud_native_storage_type = S3 +aws_s3_endpoint = minio:9000 + +# set the path in MinIO +aws_s3_path = starrocks + +#highlight-start +# credentials for MinIO object read/write +aws_s3_access_key = AAAAAAAAAAAAAAAAAAAA +aws_s3_secret_key = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB +#highlight-end +aws_s3_use_instance_profile = false +aws_s3_use_aws_sdk_default_behavior = false + +# Set this to false if you do not want default +# storage created in the object storage using +# the details provided above +enable_load_volume_from_conf = true +``` + +:::tip + +完全な設定ファイルを表示するには、このコマンドを実行できます: + +```bash +docker compose exec starrocks-fe cat fe/conf/fe.conf +``` + +すべての`docker compose`コマンドは`docker-compose.yml`ファイルを含むディレクトリから実行してください。 + +::: + +### Connect to StarRocks with a SQL client + +:::tip + +このコマンドは`docker-compose.yml`ファイルを含むディレクトリから実行してください。 + +mysql CLI以外のクライアントを使用している場合は、今すぐ開いてください。 +::: + +```sql +docker compose exec starrocks-fe \ +mysql -P9030 -h127.0.0.1 -uroot --prompt="StarRocks > " +``` + +#### Examine the storage volume + +```sql +SHOW STORAGE VOLUMES; +``` + +```plaintext ++------------------------+ +| Storage Volume | ++------------------------+ +| builtin_storage_volume | ++------------------------+ +1 row in set (0.00 sec) +``` + +```sql +DESC STORAGE VOLUME builtin_storage_volume\G +``` + +:::tip +このドキュメントの一部のSQL、およびStarRocksドキュメントの多くの他のドキュメントでは、`;`の代わりに`\G`で終わります。`\G`はmysql CLIにクエリ結果を縦に表示させます。 + +多くのSQLクライアントは縦のフォーマット出力を解釈しないため、`\G`を`;`に置き換える必要があります。 +::: + +```plaintext +*************************** 1. row *************************** + Name: builtin_storage_volume + Type: S3 +IsDefault: true +#highlight-start + Location: s3://starrocks + Params: {"aws.s3.access_key":"******","aws.s3.secret_key":"******","aws.s3.endpoint":"minio:9000","aws.s3.region":"","aws.s3.use_instance_profile":"false","aws.s3.use_aws_sdk_default_behavior":"false"} +#highlight-end + Enabled: true + Comment: +1 row in set (0.03 sec) +``` + +パラメータが設定と一致していることを確認してください。 + +:::note +フォルダ`builtin_storage_volume`は、バケットにデータが書き込まれるまでMinIOオブジェクトリストに表示されません。 +::: + +--- + +## Create a table + +これらのSQLコマンドはSQLクライアントで実行されます。 + +```SQL +CREATE DATABASE quickstart; +``` + +```SQL +USE quickstart; +``` + +```SQL +CREATE TABLE site_clicks ( + `uid` bigint NOT NULL COMMENT "uid", + `site` string NOT NULL COMMENT "site url", + `vtime` bigint NOT NULL COMMENT "vtime" +) +DISTRIBUTED BY HASH(`uid`) +PROPERTIES("replication_num"="1"); +``` + +--- + +### Open the Redpanda Console + +まだトピックはありませんが、次のステップでトピックが作成されます。 + +http://localhost:8080/overview + +### Publish data to a Redpanda topic + +`routineload/`フォルダのコマンドシェルからこのコマンドを実行してデータを生成します: + +```python +python gen.py 5 +``` + +:::tip + +システムによっては、コマンドで`python`の代わりに`python3`を使用する必要があるかもしれません。 + +`kafka-python`が不足している場合は、次を試してください: + +``` +pip install kafka-python +``` +または + +``` +pip3 install kafka-python +``` + +::: + +```plaintext +b'{ "uid": 6926, "site": "https://docs.starrocks.io/", "vtime": 1718034793 } ' +b'{ "uid": 3303, "site": "https://www.starrocks.io/product/community", "vtime": 1718034793 } ' +b'{ "uid": 227, "site": "https://docs.starrocks.io/", "vtime": 1718034243 } ' +b'{ "uid": 7273, "site": "https://docs.starrocks.io/", "vtime": 1718034794 } ' +b'{ "uid": 4666, "site": "https://www.starrocks.io/", "vtime": 1718034794 } ' +``` + +### Verify in the Redpanda Console + +Redpandaコンソールでhttp://localhost:8080/topics に移動すると、`test2`という名前のトピックが1つ表示されます。そのトピックを選択し、**Messages**タブを選択すると、`gen.py`の出力に一致する5つのメッセージが表示されます。 + +## Consume the messages + +StarRocksでは、Routine Loadジョブを作成して以下を行います: + +1. Redpandaトピック`test2`からメッセージを取り込む +2. そのメッセージをテーブル`site_clicks`にロードする + +StarRocksはMinIOをストレージとして使用するように設定されているため、`site_clicks`テーブルに挿入されたデータはMinIOに保存されます。 + +### Create a Routine Load job + +SQLクライアントでこのコマンドを実行してRoutine Loadジョブを作成します。このコマンドはラボの最後で詳細に説明されます。 + +```SQL +CREATE ROUTINE LOAD quickstart.clicks ON site_clicks +PROPERTIES +( + "format" = "JSON", + "jsonpaths" ="[\"$.uid\",\"$.site\",\"$.vtime\"]" +) +FROM KAFKA +( + "kafka_broker_list" = "redpanda:29092", + "kafka_topic" = "test2", + "kafka_partitions" = "0", + "kafka_offsets" = "OFFSET_BEGINNING" +); +``` + +### Verify the Routine Load job + +```SQL +SHOW ROUTINE LOAD\G +``` + +3つのハイライトされた行を確認してください: + +1. 状態が`RUNNING`であること +2. トピックが`test2`であり、ブローカーが`redpanda:2092`であること +3. 統計が、`SHOW ROUTINE LOAD`コマンドを実行したタイミングに応じて、0または5のロードされた行を示していること。0行の場合は再度実行してください。 + +```SQL +*************************** 1. row *************************** + Id: 10078 + Name: clicks + CreateTime: 2024-06-12 15:51:12 + PauseTime: NULL + EndTime: NULL + DbName: quickstart + TableName: site_clicks + -- highlight-next-line + State: RUNNING + DataSourceType: KAFKA + CurrentTaskNum: 1 + JobProperties: {"partitions":"*","partial_update":"false","columnToColumnExpr":"*","maxBatchIntervalS":"10","partial_update_mode":"null","whereExpr":"*","dataFormat":"json","timezone":"Etc/UTC","format":"json","log_rejected_record_num":"0","taskTimeoutSecond":"60","json_root":"","maxFilterRatio":"1.0","strict_mode":"false","jsonpaths":"[\"$.uid\",\"$.site\",\"$.vtime\"]","taskConsumeSecond":"15","desireTaskConcurrentNum":"5","maxErrorNum":"0","strip_outer_array":"false","currentTaskConcurrentNum":"1","maxBatchRows":"200000"} + -- highlight-next-line +DataSourceProperties: {"topic":"test2","currentKafkaPartitions":"0","brokerList":"redpanda:29092"} + CustomProperties: {"group.id":"clicks_ea38a713-5a0f-4abe-9b11-ff4a241ccbbd"} + -- highlight-next-line + Statistic: {"receivedBytes":0,"errorRows":0,"committedTaskNum":0,"loadedRows":0,"loadRowsRate":0,"abortedTaskNum":0,"totalRows":0,"unselectedRows":0,"receivedBytesRate":0,"taskExecuteTimeMs":1} + Progress: {"0":"OFFSET_ZERO"} + TimestampProgress: {} +ReasonOfStateChanged: + ErrorLogUrls: + TrackingSQL: + OtherMsg: +LatestSourcePosition: {} +1 row in set (0.00 sec) +``` + +```SQL +SHOW ROUTINE LOAD\G +``` + +```SQL +*************************** 1. row *************************** + Id: 10076 + Name: clicks + CreateTime: 2024-06-12 18:40:53 + PauseTime: NULL + EndTime: NULL + DbName: quickstart + TableName: site_clicks + State: RUNNING + DataSourceType: KAFKA + CurrentTaskNum: 1 + JobProperties: {"partitions":"*","partial_update":"false","columnToColumnExpr":"*","maxBatchIntervalS":"10","partial_update_mode":"null","whereExpr":"*","dataFormat":"json","timezone":"Etc/UTC","format":"json","log_rejected_record_num":"0","taskTimeoutSecond":"60","json_root":"","maxFilterRatio":"1.0","strict_mode":"false","jsonpaths":"[\"$.uid\",\"$.site\",\"$.vtime\"]","taskConsumeSecond":"15","desireTaskConcurrentNum":"5","maxErrorNum":"0","strip_outer_array":"false","currentTaskConcurrentNum":"1","maxBatchRows":"200000"} +DataSourceProperties: {"topic":"test2","currentKafkaPartitions":"0","brokerList":"redpanda:29092"} + CustomProperties: {"group.id":"clicks_a9426fee-45bb-403a-a1a3-b3bc6c7aa685"} + -- highlight-next-line + Statistic: {"receivedBytes":372,"errorRows":0,"committedTaskNum":1,"loadedRows":5,"loadRowsRate":0,"abortedTaskNum":0,"totalRows":5,"unselectedRows":0,"receivedBytesRate":0,"taskExecuteTimeMs":519} + Progress: {"0":"4"} + TimestampProgress: {"0":"1718217035111"} +ReasonOfStateChanged: + ErrorLogUrls: + TrackingSQL: + OtherMsg: + -- highlight-next-line +LatestSourcePosition: {"0":"5"} +1 row in set (0.00 sec) +``` + +--- + +## Verify that data is stored in MinIO + +MinIOを開き、`starrocks`の下にオブジェクトが保存されていることを確認します。 + +--- + +## Query the data from StarRocks + +```SQL +USE quickstart; +SELECT * FROM site_clicks; +``` + +```SQL ++------+--------------------------------------------+------------+ +| uid | site | vtime | ++------+--------------------------------------------+------------+ +| 4607 | https://www.starrocks.io/blog | 1718031441 | +| 1575 | https://www.starrocks.io/ | 1718031523 | +| 2398 | https://docs.starrocks.io/ | 1718033630 | +| 3741 | https://www.starrocks.io/product/community | 1718030845 | +| 4792 | https://www.starrocks.io/ | 1718033413 | ++------+--------------------------------------------+------------+ +5 rows in set (0.07 sec) +``` + +## Publish additional data + +`gen.py`を再度実行すると、Redpandaにさらに5つのレコードが公開されます。 + +```bash +python gen.py 5 +``` + +### Verify that data is added + +Routine Loadジョブはスケジュールに基づいて実行されるため(デフォルトでは10秒ごと)、データは数秒以内にロードされます。 + +```SQL +SELECT * FROM site_clicks; +```` + +``` ++------+--------------------------------------------+------------+ +| uid | site | vtime | ++------+--------------------------------------------+------------+ +| 6648 | https://www.starrocks.io/blog | 1718205970 | +| 7914 | https://www.starrocks.io/ | 1718206760 | +| 9854 | https://www.starrocks.io/blog | 1718205676 | +| 1186 | https://www.starrocks.io/ | 1718209083 | +| 3305 | https://docs.starrocks.io/ | 1718209083 | +| 2288 | https://www.starrocks.io/blog | 1718206759 | +| 7879 | https://www.starrocks.io/product/community | 1718204280 | +| 2666 | https://www.starrocks.io/ | 1718208842 | +| 5801 | https://www.starrocks.io/ | 1718208783 | +| 8409 | https://www.starrocks.io/ | 1718206889 | ++------+--------------------------------------------+------------+ +10 rows in set (0.02 sec) +``` + +--- + +## Configuration details + +StarRocksをshared-dataで使用する経験を積んだ今、設定を理解することが重要です。 + +### CN configuration + +ここで使用されているCNの設定はデフォルトです。CNはshared-dataの使用を目的として設計されています。デフォルトの設定は以下の通りです。変更を加える必要はありません。 + +```bash +sys_log_level = INFO + +# ports for admin, web, heartbeat service +be_port = 9060 +be_http_port = 8040 +heartbeat_service_port = 9050 +brpc_port = 8060 +starlet_port = 9070 +``` + +### FE configuration + +FEの設定は、デフォルトとは少し異なります。FEはデータがBEノードの本地ディスクではなく、Object Storageに保存されることを期待するように設定されなければなりません。 + +`docker-compose.yml`ファイルは、`starrocks-fe`サービスの`command`セクションでFEの設定を生成します。 + +```plaintext +# enable shared data, set storage type, set endpoint +run_mode = shared_data +cloud_native_storage_type = S3 +aws_s3_endpoint = minio:9000 + +# set the path in MinIO +aws_s3_path = starrocks + +# credentials for MinIO object read/write +aws_s3_access_key = AAAAAAAAAAAAAAAAAAAA +aws_s3_secret_key = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB +aws_s3_use_instance_profile = false +aws_s3_use_aws_sdk_default_behavior = false + +# Set this to false if you do not want default +# storage created in the object storage using +# the details provided above +enable_load_volume_from_conf = true +``` + +:::note +この設定ファイルにはFEのデフォルトエントリは含まれておらず、shared-dataの設定のみが示されています。 +::: + +デフォルトではないFEの設定: + +:::note +多くの設定パラメータは`s3_`で始まります。このプレフィックスは、すべてのAmazon S3互換ストレージタイプ(例:S3、GCS、MinIO)に使用されます。Azure Blob Storageを使用する場合、プレフィックスは`azure_`です。 +::: + +#### `run_mode=shared_data` + +これはshared-dataの使用を有効にします。 + +#### `cloud_native_storage_type=S3` + +これは、S3互換ストレージまたはAzure Blob Storageが使用されるかどうかを指定します。MinIOの場合、常にS3です。 + +#### `aws_s3_endpoint=minio:9000` + +MinIOのエンドポイント(ポート番号を含む)。 + +#### `aws_s3_path=starrocks` + +バケット名。 + +#### `aws_s3_access_key=AAAAAAAAAAAAAAAAAAAA` + +MinIOのアクセスキー。 + +#### `aws_s3_secret_key=BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB` + +MinIOのアクセスキーシークレット。 + +#### `aws_s3_use_instance_profile=false` + +MinIOを使用する場合、アクセスキーが使用されるため、インスタンスプロファイルはMinIOでは使用されません。 + +#### `aws_s3_use_aws_sdk_default_behavior=false` + +MinIOを使用する場合、このパラメータは常にfalseに設定されます。 + +#### `enable_load_volume_from_conf=true` + +これがtrueの場合、MinIOオブジェクトストレージを使用して`builtin_storage_volume`という名前のStarRocks存储卷が作成され、作成するテーブルのデフォルトの存储卷として設定されます。 + +--- + +## Notes on the Routine Load command + +StarRocks Routine Loadは多くの引数を取ります。このチュートリアルで使用されているものだけがここで説明され、残りは詳細情報セクションでリンクされます。 + +```SQL +CREATE ROUTINE LOAD quickstart.clicks ON site_clicks +PROPERTIES +( + "format" = "JSON", + "jsonpaths" ="[\"$.uid\",\"$.site\",\"$.vtime\"]" +) +FROM KAFKA +( + "kafka_broker_list" = "redpanda:29092", + "kafka_topic" = "test2", + "kafka_partitions" = "0", + "kafka_offsets" = "OFFSET_BEGINNING" +); +``` + +### Parameters + +``` +CREATE ROUTINE LOAD quickstart.clicks ON site_clicks +``` + +`CREATE ROUTINE LOAD ON`のパラメータは: +- database_name.job_name +- table_name + +`database_name`はオプションです。このラボでは`quickstart`で指定されています。 + +`job_name`は必須で、`clicks`です。 + +`table_name`は必須で、`site_clicks`です。 + +### Job properties + +#### Property `format` + +``` +"format" = "JSON", +``` + +この場合、データはJSON形式であるため、プロパティは`JSON`に設定されています。他の有効な形式は:`CSV`、`JSON`、および`Avro`です。`CSV`がデフォルトです。 + +#### Property `jsonpaths` + +``` +"jsonpaths" ="[\"$.uid\",\"$.site\",\"$.vtime\"]" +``` + +JSON形式のデータからロードしたいフィールドの名前。このパラメータの値は有効なJsonPath式です。詳細情報はこのページの最後にあります。 + +### Data source properties + +#### `kafka_broker_list` + +``` +"kafka_broker_list" = "redpanda:29092", +``` + +Kafkaのブローカー接続情報。形式は`:`です。複数のブローカーはカンマで区切られます。 + +#### `kafka_topic` + +``` +"kafka_topic" = "test2", +``` + +消費するKafkaトピック。 + +#### `kafka_partitions` and `kafka_offsets` + +``` +"kafka_partitions" = "0", +"kafka_offsets" = "OFFSET_BEGINNING" +``` + +これらのプロパティは、`kafka_partitions`エントリごとに1つの`kafka_offset`が必要であるため、一緒に提示されます。 + +`kafka_partitions`は消費する1つ以上のパーティションのリストです。このプロパティが設定されていない場合、すべてのパーティションが消費されます。 + +`kafka_offsets`は、`kafka_partitions`にリストされている各パーティションに対するオフセットのリストです。この場合、値は`OFFSET_BEGINNING`であり、すべてのデータが消費されます。デフォルトは新しいデータのみを消費することです。 + +--- + +## Summary + +このチュートリアルでは: + +- DockerでStarRocks、Reedpanda、およびMinioをデプロイしました +- Kafkaトピックからデータを取り込むRoutine Loadジョブを作成しました +- MinIOを使用するStarRocks存储卷の設定方法を学びました + +## More information + +[StarRocks Architecture](../introduction/Architecture.md) + +このラボで使用されたサンプルは非常にシンプルです。Routine Loadには多くのオプションと機能があります。[詳細はこちら](../loading/RoutineLoad.md)。 + +[JSONPath](https://goessner.net/articles/JsonPath/) diff --git a/docs/translation/README.md b/docs/translation/README.md index fc42cff613cde..4f57d5b9db8c1 100644 --- a/docs/translation/README.md +++ b/docs/translation/README.md @@ -2,6 +2,14 @@ This README describes using GPT-4o to translate from Chinese to English, or from English to Chinese. The system used is specific to Docusaurus Markdown and MDX. We are using code provided by Weights and Biases, as they also use Docusaurus and have expertise with LLMs. +> Note: +> +> Known issues: +> +>Frontmatter `keywords` entries are not allowed. I will submit a PR to allow them and any other frontmatter entries that we use. For now, just remove them from the source document and then add them by hand to both the source and translated doc after translation. +> +> Pydantic error about serialization: There is an error coming up after the translation is complete. I have not debugged this yet, I will see if the author of the tranlation package can help, he knows way more about Python than I do. + To translate an English doc: ## Set up the environment @@ -47,7 +55,7 @@ The entries in the file should be relative to the `starrocks/docs/translation/` `starrocks/docs/translation/files.txt` ```bash -../en/quick_start/quick_start.md +../en/quick_start/routine-load.md ../en/deployment/helm.md ``` @@ -59,7 +67,7 @@ The entries in the file should be relative to the `starrocks/docs/translation/` `starrocks/docs/translation/files.txt` ```bash -../en/quick_start/quick_start.md +../en/quick_start/routine-load.md ../en/deployment/helm.md ``` @@ -71,7 +79,7 @@ The entries in the file should be relative to the `starrocks/docs/translation/` `starrocks/docs/translation/files.txt` ```bash -../zh/quick_start/quick_start.md +../zh/quick_start/routine-load.md ../zh/deployment/helm.md ``` From 4ee15d2f768010e063ce3d3e73f73726e3d9bc17 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Mon, 10 Feb 2025 12:13:44 -0500 Subject: [PATCH 03/10] add PR note Signed-off-by: DanRoscigno --- docs/translation/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/translation/README.md b/docs/translation/README.md index 4f57d5b9db8c1..23ab8e538c24a 100644 --- a/docs/translation/README.md +++ b/docs/translation/README.md @@ -6,7 +6,7 @@ This README describes using GPT-4o to translate from Chinese to English, or from > > Known issues: > ->Frontmatter `keywords` entries are not allowed. I will submit a PR to allow them and any other frontmatter entries that we use. For now, just remove them from the source document and then add them by hand to both the source and translated doc after translation. +> Frontmatter `keywords` entries are not allowed. [This PR](https://github.com/tcapelle/gpt_translate/pull/16) adds `keywords`, `unlisted`, and `sidebar_label` to the frontmatter. For now, test with docs that do not include `keywords` or `sidebar_label` entries. > > Pydantic error about serialization: There is an error coming up after the translation is complete. I have not debugged this yet, I will see if the author of the tranlation package can help, he knows way more about Python than I do. From 80c1155c1b92683f3431670f009dda131bd31f49 Mon Sep 17 00:00:00 2001 From: EsoragotoSpirit Date: Tue, 11 Feb 2025 16:42:50 +0800 Subject: [PATCH 04/10] [Doc] Populate dictionary Signed-off-by: EsoragotoSpirit --- .../en-to-ja-configs/language_dicts/ja.yaml | 272 +++++++++--------- 1 file changed, 136 insertions(+), 136 deletions(-) diff --git a/docs/translation/en-to-ja-configs/language_dicts/ja.yaml b/docs/translation/en-to-ja-configs/language_dicts/ja.yaml index dfad1ab71cc5e..12839bdb916eb 100644 --- a/docs/translation/en-to-ja-configs/language_dicts/ja.yaml +++ b/docs/translation/en-to-ja-configs/language_dicts/ja.yaml @@ -1,139 +1,139 @@ FEs: FE BEs: BE -Data loading: 数据导入 -Data unloading: 数据导出 -load: 导入 -native table: 内表 -Cloud-native table: 存算分离表 -External Table: 外部表 -File External Table: 文件外部表 -Hive external table: Hive 外表 -hierarchy of data objects: 数据库模式层次结构 -storage layering: 存储分层 -separation of storage and compute: 存算分离 -shared-data mode: 存算分离模式 -shared-nothing mode: 存算一体模式 -shared-data cluster: 存算分离集群 -shared-nothing cluster: 存算一体集群 -zero-migration: 0数据迁移 -native vectorized engine: 原生向量化引擎 -query federation/federated query: 联邦查询 -columnar storage: 列式存储 -row storage: 行存储 -intelligent materialized view: 智能物化视图 -base table: 基表 -materialized view: 物化视图 -synchronous materialized view: 同步物化视图 -asynchronous materialized view: 异步物化视图 -unified batch and streaming,batch-stream integrated: 流批一体 -high availability: 高可用 -high scalability: 高可扩展性 -data ingestion: 数据摄取 -denormalized table/flat table: 大宽表 -pre-aggregation: 预聚合 -aggregate query: 聚合查询 -star schema: 星形模型 -snowflake schema: 雪花模型 -point query: 点查询 -table type: 表模型 -Duplicate Key table: 明细表 -Aggregate table: 聚合表 -Primary Key table: 主键表 -Unique Key table: 更新表 -data cleaning: 数据清洗 -global dictionary: 全局字典 -global dictionary for low-cardinality optimization: 全局低基数字典优化 -low cardinality: 低基数 -warehousing logistics: 仓储物流 -query performance: 查询性能 -data acquisition: 数据采集 -multi-table join query: 多表关联查询 -cost-based optimizer: CBO优化器 -separation of storage and compute: 存算分离 -cost estimation: 成本估算 -binary tree: 二叉树 -data analytics: 数据分析 -data lake analytics: 数据湖分析 -detailed data: 明细数据 -distinct count: 去重 -exact distinct count: 精准去重 -approximate distinct count: 近似去重 -table schema: 表结构 -sort key: 排序键 -bucketing key: 分桶键 -partitioning column: 分区列 -partition key: 分区键 -random bucketing: 随机分桶 -partitioning method: 分区方式 -automatic partitioning: 自动分区 -dynamic partitioning: 动态分区 -expresion partitioning: 表达式分区 -list partitioning: LIST 分区 -replica: 副本 -user profiling: 用户画像 -user retention: 用户留存 -precision marketing: 精准营销 -group analysis: 群体分析 -late materialization: 延迟物化 -data locality: 数据局部性 -prefix index: 前缀索引 -suffix column: 后置列 -prefix column: 前置列 -tiered storage: 分级存储 -inverted indexing: 倒排索引 -approximation algorithm: 近似算法 -nested query: 嵌套查询 -memory leak: 内存泄漏 -memory bloat: 内存膨胀 -secondary partitioning: 二次分区 -pruning: 分区裁剪 -partition file: 分区文件 -abstract syntax tree: 抽象语法树 -constant folding: 常量折叠 -constant propagation: 常量传播 -pessimistic locking: 悲观加锁 -optimistic locking: 乐观加锁 -rolling update: 滚动升级 -stratified search: 分层搜索 -unified search: 统一搜索 -populate a table: 给表添加数据 -working directory: 工作目录 -compute node: 计算节点 -compute engine: 计算引擎 -equi-height histogram: 等深直方图 -equi-width histogram: 等宽直方图 -paginated query: 分页查询 -correlated columns: 相关列 -literal: 字面量 +Data loading: データロード +Data unloading: データアンロード +load: ロード +native table: 内部テーブル +Cloud-native table: クラウドネイティブテーブル +External Table: 外部テーブル +File External Table: ファイル外部テーブル +Hive external table: Hive 外部テーブル +hierarchy of data objects: データオブジェクトの階層 +storage layering: ストレージ階層化 +separation of storage and compute: ストレージとコンピュートの分離 +shared-data mode: 共有データモード +shared-nothing mode: 共有なしモード +shared-data cluster: 共有データクラスタ +shared-nothing cluster: 共有なしクラスタ +zero-migration: ゼロマイグレーション +native vectorized engine: ネイティブベクトル化エンジン +query federation/federated query: フェデレーションクエリ +columnar storage: 列指向(カラムナ)ストレージ +row storage: 行指向(ロウ)ストレージ +intelligent materialized view: インテリジェントなマテリアライズドビュー +base table: ベーステーブル +materialized view: マテリアライズドビュー +synchronous materialized view: 同期マテリアライズドビュー +asynchronous materialized view: 非同期マテリアライズドビュー +unified batch and streaming, batch-stream integrated: バッチストリーム統合 +high availability: 高可用性 +high scalability: 高拡張性 +data ingestion: データ取り込み +denormalized table/flat table: 非正規化テーブル +pre-aggregation: 事前集計 +aggregate query: 集計クエリ +star schema: スタースキーマ +snowflake schema: スノーフレークスキーマ +point query: ポイントクエリ +table type: テーブルタイプ +Duplicate Key table: 重複キーテーブル +Aggregate table: 集計テーブル +Primary Key table: 主キーテーブル +Unique Key table: ユニークキーテーブル +data cleaning: データクレンジング +global dictionary: グローバル辞書 +global dictionary for low-cardinality optimization: 低基数最適化のためのグローバル辞書 +low cardinality: 低基数 +warehousing logistics: データウェアハウスのロジスティクス +query performance: クエリパフォーマンス +data acquisition: データ取得 +multi-table join query: 複数テーブルジョインクエリ +cost-based optimizer: コストベースオプティマイザ +separation of storage and compute: ストレージとコンピュートの分離 +cost estimation: コスト推定 +binary tree: 二分木 +data analytics: データ分析 +data lake analytics: データレイク分析 +detailed data: 詳細データ +distinct count: 重複排除カウント +exact distinct count: 正確な重複排除カウント +approximate distinct count: 近似重複排除カウント +table schema: テーブルスキーマ +sort key: ソートキー +bucketing key: バケッティングキー +partitioning column: パーティション列 +partition key: パーティションキー +random bucketing: ランダムバケット法 +partitioning method: パーティション化の手法 +automatic partitioning: 自動パーティション化 +dynamic partitioning: 動的パーティション化 +expression partitioning: 式に基づくパーティション化 +list partitioning: リストパーティション化 +replica: レプリカ +user profiling: ユーザープロファイリング +user retention: ユーザーリテンション +precision marketing: 精密マーケティング +group analysis: グループ分析 +late materialization: 後期実体化 +data locality: データのローカル性 +prefix index: プレフィックスインデックス +suffix column: サフィックス列 +prefix column: プレフィックス列 +tiered storage: 階層型ストレージ +inverted indexing: 転置インデックス +approximation algorithm: 近似アルゴリズム +nested query: ネストクエリ +memory leak: メモリリーク +memory bloat: メモリ肥大化 +secondary partitioning: セカンダリパーティション +pruning: プルーニング +partition file: パーティションファイル +abstract syntax tree: 抽象構文ツリー +constant folding: 定数畳み込み +constant propagation: 定数伝搬 +pessimistic locking: 悲観ロック +optimistic locking: 楽観ロック +rolling update: ローリングアップデート +stratified search: 層化検索 +unified search: 統合検索 +populate a table: テーブルにデータを投入 +working directory: 作業ディレクトリ +compute node: コンピュートノード +compute engine: コンピュートエンジン +equi-height histogram: 等高ヒストグラム +equi-width histogram: 等幅ヒストグラム +paginated query: ページングクエリ +correlated column: 相関列 +literal: リテラル generated column: 生成列 -auto increment: 自增列 -cloud-native: 云原生 -persistent index: 持久化索引 -utility function: 工具函数 -aggregate function: 聚合函数 -spill to disk: 中间结果落盘 -query rewrite: 查询改写 -data re-distribution: 数据均衡 -local disk: 本地磁盘 -automatical cooldown: 自动降冷 -storage medium: 存储介质 -garbage collection: 垃圾回收 -session variable: 会话变量 -global variable: 全局变量 -big query: 大查询 -classifier: 分类器 -storage volume: 存储卷 -remote storage: 远端存储 -cardinality-preserving join: 基数保持 JOIN -parallelism: 并行度 -partial update: 部分列更新 -conditional update: 条件更新 -higher-order function: 高阶函数 -async refresh: 异步刷新 -query acceleration: 查询加速 -segment file: Segment 文件 -Hybrid row-column storage: 行列混存 -List Partitioning: List 分区 -Range Partitioning: Range 分区 -Bitmap index: Bitmap 索引 -Bloom filter index: Bloom filter 索引 +auto increment: 自動増分列 +cloud-native: クラウドネイティブ +persistent index: 永続性インデックス +utility function: ユーティリティ関数 +aggregate function: 集計関数 +spill to disk: ディスクへのスピル +query rewrite: クエリの書き換え +data re-distribution: データ再配布 +local disk: ローカルディスク +automatic cooldown: 自動クールダウン +storage medium: 記憶媒体 +garbage collection: ガーベジコレクション +session variable: セッション変数 +global variable: グローバル変数 +big query: 大規模クエリ +classifier: クラシファイア(分類器) +storage volume: ストレージボリューム +remote storage: リモートストレージ +cardinality-preserving join: 基数保持ジョイン +parallelism: 並行性 +partial update: 部分更新 +conditional update: 条件付き更新 +higher-order function: 高階関数 +async refresh: 非同期リフレッシュ +query acceleration: クエリアクセラレーション +segment file: セグメントファイル +Hybrid row-column storage: 行と列のハイブリッドストレージ +List Partitioning: リストパーティション化 +Range Partitioning: レンジパーティション化 +Bitmap index: ビットマップインデックス +Bloom filter index: ブルームフィルターインデックス From a9caf4df7d793adbe0f0af8a741b9c75937f366d Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Tue, 11 Feb 2025 13:39:26 -0500 Subject: [PATCH 05/10] UI translation files Signed-off-by: DanRoscigno --- docs/docusaurus/docusaurus.config.js | 2 +- docs/docusaurus/i18n/ja/code.json | 444 ++++++++++++++++++ .../current.json | 14 + .../ja/docusaurus-theme-classic/footer.json | 14 + .../ja/docusaurus-theme-classic/navbar.json | 46 ++ 5 files changed, 519 insertions(+), 1 deletion(-) create mode 100644 docs/docusaurus/i18n/ja/code.json create mode 100644 docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs-releasenotes/current.json create mode 100644 docs/docusaurus/i18n/ja/docusaurus-theme-classic/footer.json create mode 100644 docs/docusaurus/i18n/ja/docusaurus-theme-classic/navbar.json diff --git a/docs/docusaurus/docusaurus.config.js b/docs/docusaurus/docusaurus.config.js index 4ae60750ca259..cd5183d5fcd2f 100644 --- a/docs/docusaurus/docusaurus.config.js +++ b/docs/docusaurus/docusaurus.config.js @@ -36,7 +36,7 @@ const config = { i18n: { defaultLocale: 'en', - locales: ['en', 'zh'], + locales: ['en', 'zh', 'ja'], localeConfigs: { en: { htmlLang: 'en-US', diff --git a/docs/docusaurus/i18n/ja/code.json b/docs/docusaurus/i18n/ja/code.json new file mode 100644 index 0000000000000..c30d9fe5ddfd0 --- /dev/null +++ b/docs/docusaurus/i18n/ja/code.json @@ -0,0 +1,444 @@ +{ + "feedback.textarealabel.what-can-we-do": { + "message": "What can we do to improve it? Please be as detailed as you like." + }, + "feedback.humans": { + "message": "Real human beings read every single review." + }, + "feedback.general": { + "message": "Any general feedback you'd like to add?" + }, + "feedback.takeitall": { + "message": "We'll take it all... tell us how well we're doing or where we can improve." + }, + "feedback.title": { + "message": "What did you think of this doc?" + }, + "feedback.thanks": { + "message": "Thanks for your feedback." + }, + "feedback.community": { + "message": "Connect with the community and devs, links in the top nav!" + }, + "feedback.send": { + "message": "Send your review!" + }, + "theme.NotFound.title": { + "message": "ページが見つかりません", + "description": "The title of the 404 page" + }, + "theme.NotFound.p1": { + "message": "お探しのページが見つかりませんでした", + "description": "The first paragraph of the 404 page" + }, + "theme.ErrorPageContent.title": { + "message": "エラーが発生しました", + "description": "The title of the fallback page when the page crashed" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "先頭へ戻る", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "アーカイブ", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "アーカイブ", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "ブログ記事一覧のナビゲーション", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "新しい記事", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "過去の記事", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "ブログ記事のナビゲーション", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "新しい記事", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "過去の記事", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.post.plurals": { + "message": "{count}件", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "「{tagName}」タグの記事が{nPosts}件あります", + "description": "The title of the page for a blog tag" + }, + "theme.tags.tagsPageLink": { + "message": "全てのタグを見る", + "description": "The label of the link targeting the tag list page" + }, + "theme.colorToggle.ariaLabel": { + "message": "ダークモードを切り替える(現在は{mode})", + "description": "The ARIA label for the navbar color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "ダークモード", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "ライトモード", + "description": "The name for the light color mode" + }, + "theme.docs.DocCard.categoryDescription": { + "message": "{count}項目", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "パンくずリストのナビゲーション", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "ドキュメントページ", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "前へ", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "次へ", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "{count}記事", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "「{tagName}」タグのついた{nDocsTagged}", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "バージョン: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "これはリリース前のバージョン{versionLabel}の{siteTitle}のドキュメントです。", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "これはバージョン{versionLabel}の{siteTitle}のドキュメントで現在はメンテナンスされていません", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "最新のドキュメントは{latestVersionLink} ({versionLabel}) を見てください", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "最新バージョン", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "このページを編集", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "{heading} への直接リンク", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": "{date}に", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": "{user}が", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "{atDate}{byUser}最終更新", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "他のバージョン", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.tags.tagsListLabel": { + "message": "タグ:", + "description": "The label alongside a tag list" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "閉じる", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.admonition.caution": { + "message": "注意", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.admonition.danger": { + "message": "危険", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "備考", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.note": { + "message": "注記", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "ヒント", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.warning": { + "message": "警告", + "description": "The default label used for the Warning admonition (:::warning)" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "最近のブログ記事のナビゲーション", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.CodeBlock.copied": { + "message": "コピーしました", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "クリップボードにコードをコピー", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copy": { + "message": "コピー", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "折り返し", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.DocSidebarItem.expandCategoryAriaLabel": { + "message": "Expand sidebar category '{label}'", + "description": "The ARIA label to expand the sidebar category" + }, + "theme.DocSidebarItem.collapseCategoryAriaLabel": { + "message": "Collapse sidebar category '{label}'", + "description": "The ARIA label to collapse the sidebar category" + }, + "theme.NotFound.p2": { + "message": "このページにリンクしているサイトの所有者にリンクが壊れていることを伝えてください", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.NavBar.navAriaLabel": { + "message": "Main", + "description": "The ARIA label for the main navigation" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "他の言語", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "このページの見出し", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.blog.post.readMore": { + "message": "もっと見る", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "{title}についてもっと見る", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.blog.post.readingTime.plurals": { + "message": "約{readingTime}分", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.breadcrumbs.home": { + "message": "ホームページ", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "サイドバーを隠す", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "サイドバーを隠す", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Docs sidebar", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Close navigation bar", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← メインメニューに戻る", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Toggle navigation bar", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "サイドバーを開く", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "サイドバーを開く", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.SearchPage.documentsFound.plurals": { + "message": "{count}件のドキュメントが見つかりました", + "description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.SearchPage.existingResultsTitle": { + "message": "『{query}』の検索結果", + "description": "The search page title for non-empty query" + }, + "theme.SearchPage.emptyResultsTitle": { + "message": "ドキュメントを検索", + "description": "The search page title for empty query" + }, + "theme.SearchPage.inputPlaceholder": { + "message": "検索するキーワードを入力してください", + "description": "The placeholder for search page input" + }, + "theme.SearchPage.inputLabel": { + "message": "検索", + "description": "The ARIA label for search page input" + }, + "theme.SearchPage.algoliaLabel": { + "message": "Algoliaで検索", + "description": "The ARIA label for Algolia mention" + }, + "theme.SearchPage.noResultsText": { + "message": "検索結果が見つかりませんでした", + "description": "The paragraph for empty search result" + }, + "theme.SearchPage.fetchingNewResults": { + "message": "新しい検索結果を取得しています...", + "description": "The paragraph for fetching new search results" + }, + "theme.SearchBar.seeAll": { + "message": "検索結果{count}件をすべて見る" + }, + "theme.SearchBar.label": { + "message": "検索", + "description": "The ARIA label and placeholder for search button" + }, + "theme.SearchModal.searchBox.resetButtonTitle": { + "message": "クリア", + "description": "The label and ARIA label for search box reset button" + }, + "theme.SearchModal.searchBox.cancelButtonText": { + "message": "キャンセル", + "description": "The label and ARIA label for search box cancel button" + }, + "theme.SearchModal.startScreen.recentSearchesTitle": { + "message": "最近の検索", + "description": "The title for recent searches" + }, + "theme.SearchModal.startScreen.noRecentSearchesText": { + "message": "最近の検索履歴はありません", + "description": "The text when no recent searches" + }, + "theme.SearchModal.startScreen.saveRecentSearchButtonTitle": { + "message": "この検索をお気に入りに追加", + "description": "The label for save recent search button" + }, + "theme.SearchModal.startScreen.removeRecentSearchButtonTitle": { + "message": "この検索を履歴から削除", + "description": "The label for remove recent search button" + }, + "theme.SearchModal.startScreen.favoriteSearchesTitle": { + "message": "お気に入り", + "description": "The title for favorite searches" + }, + "theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle": { + "message": "この検索をお気に入りから削除", + "description": "The label for remove favorite search button" + }, + "theme.SearchModal.errorScreen.titleText": { + "message": "検索結果の取得に失敗しました", + "description": "The title for error screen of search modal" + }, + "theme.SearchModal.errorScreen.helpText": { + "message": "ネットワーク接続を確認してください", + "description": "The help text for error screen of search modal" + }, + "theme.SearchModal.footer.selectText": { + "message": "選ぶ", + "description": "The explanatory text of the action for the enter key" + }, + "theme.SearchModal.footer.selectKeyAriaLabel": { + "message": "エンターキー", + "description": "The ARIA label for the Enter key button that makes the selection" + }, + "theme.SearchModal.footer.navigateText": { + "message": "移動", + "description": "The explanatory text of the action for the Arrow up and Arrow down key" + }, + "theme.SearchModal.footer.navigateUpKeyAriaLabel": { + "message": "上矢印キー", + "description": "The ARIA label for the Arrow up key button that makes the navigation" + }, + "theme.SearchModal.footer.navigateDownKeyAriaLabel": { + "message": "下矢印キー", + "description": "The ARIA label for the Arrow down key button that makes the navigation" + }, + "theme.SearchModal.footer.closeText": { + "message": "閉じる", + "description": "The explanatory text of the action for Escape key" + }, + "theme.SearchModal.footer.closeKeyAriaLabel": { + "message": "エスケープキー", + "description": "The ARIA label for the Escape key button that close the modal" + }, + "theme.SearchModal.footer.searchByText": { + "message": "検索", + "description": "The text explain that the search is making by Algolia" + }, + "theme.SearchModal.noResultsScreen.noResultsText": { + "message": "見つかりませんでした", + "description": "The text explains that there are no results for the following search" + }, + "theme.SearchModal.noResultsScreen.suggestedQueryText": { + "message": "次の検索を試す:", + "description": "The text for the suggested query when no results are found for the following search" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsText": { + "message": "よりよい検索結果がありますか?", + "description": "The text for the question where the user thinks there are missing results" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsLinkText": { + "message": "報告する", + "description": "The text for the link to report missing results" + }, + "theme.SearchModal.placeholder": { + "message": "ドキュメントを検索", + "description": "The placeholder of the input of the DocSearch pop-up modal" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "もう一度試してください", + "description": "The label of the button to try again rendering when the React error boundary captures an error" + }, + "theme.common.skipToMainContent": { + "message": "メインコンテンツまでスキップ", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsPageTitle": { + "message": "タグ", + "description": "The title of the tag list page" + }, + "theme.unlistedContent.title": { + "message": "Unlisted page", + "description": "The unlisted content banner title" + }, + "theme.unlistedContent.message": { + "message": "This page is unlisted. Search engines will not index it, and only users having a direct link can access it.", + "description": "The unlisted content banner message" + } +} diff --git a/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs-releasenotes/current.json b/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs-releasenotes/current.json new file mode 100644 index 0000000000000..e11ca86716bd4 --- /dev/null +++ b/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs-releasenotes/current.json @@ -0,0 +1,14 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.docs.category.StarRocks": { + "message": "StarRocks", + "description": "The label for category StarRocks in sidebar docs" + }, + "sidebar.docs.category.Connectors": { + "message": "Connectors", + "description": "The label for category Connectors in sidebar docs" + } +} diff --git a/docs/docusaurus/i18n/ja/docusaurus-theme-classic/footer.json b/docs/docusaurus/i18n/ja/docusaurus-theme-classic/footer.json new file mode 100644 index 0000000000000..98e33c48295b3 --- /dev/null +++ b/docs/docusaurus/i18n/ja/docusaurus-theme-classic/footer.json @@ -0,0 +1,14 @@ +{ + "link.item.label.StarRocks.io": { + "message": "StarRocks.io", + "description": "The label of footer link with label=StarRocks.io linking to https://www.starrocks.io/" + }, + "link.item.label.Privacy policy": { + "message": "Privacy policy", + "description": "The label of footer link with label=Privacy policy linking to https://www.starrocks.io/product/privacy-policy" + }, + "copyright": { + "message": "Docs built with Docusaurus.", + "description": "The footer copyright" + } +} diff --git a/docs/docusaurus/i18n/ja/docusaurus-theme-classic/navbar.json b/docs/docusaurus/i18n/ja/docusaurus-theme-classic/navbar.json new file mode 100644 index 0000000000000..ba10795ec18ec --- /dev/null +++ b/docs/docusaurus/i18n/ja/docusaurus-theme-classic/navbar.json @@ -0,0 +1,46 @@ +{ + "title": { + "message": "StarRocks", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "StarRocks Logo", + "description": "The alt text of navbar logo" + }, + "item.label.Docs": { + "message": "Docs", + "description": "Navbar item with label Docs" + }, + "item.label.Release Notes": { + "message": "Release Notes", + "description": "Navbar item with label Release Notes" + }, + "item.label.Community": { + "message": "Community", + "description": "Navbar item with label Community" + }, + "item.label.社区群": { + "message": "社区群", + "description": "Navbar item with label 社区群" + }, + "item.label.Privacy policy": { + "message": "Privacy policy", + "description": "Navbar item with label Privacy policy" + }, + "item.label.Slack": { + "message": "Slack", + "description": "Navbar item with label Slack" + }, + "item.label.Forum": { + "message": "Forum", + "description": "Navbar item with label Forum" + }, + "item.label.StarRocks中文社区论坛": { + "message": "StarRocks中文社区论坛", + "description": "Navbar item with label StarRocks中文社区论坛" + }, + "item.label.技术支持渠道": { + "message": "技术支持渠道", + "description": "Navbar item with label 技术支持渠道" + } +} From 21d70f41f2e3c0e31bd497efd5257e25da91d305 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Tue, 11 Feb 2025 15:58:16 -0500 Subject: [PATCH 06/10] init Signed-off-by: DanRoscigno --- .../current.json | 454 ++++++++++++++++++ 1 file changed, 454 insertions(+) create mode 100644 docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs/current.json diff --git a/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs/current.json b/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs/current.json new file mode 100644 index 0000000000000..57c8eecc3a2b2 --- /dev/null +++ b/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,454 @@ +{ + "version.label": { + "message": "Latest-3.4", + "description": "The label for version current" + }, + "sidebar.docs.category.Introduction to StarRocks": { + "message": "Introduction to StarRocks", + "description": "The label for category Introduction to StarRocks in sidebar docs" + }, + "sidebar.docs.category.Quick Start": { + "message": "Quick Start", + "description": "The label for category Quick Start in sidebar docs" + }, + "sidebar.docs.category.Project Help": { + "message": "Project Help", + "description": "The label for category Project Help in sidebar docs" + }, + "sidebar.docs.category.Deployment": { + "message": "Deployment", + "description": "The label for category Deployment in sidebar docs" + }, + "sidebar.docs.category.Preparation": { + "message": "Preparation", + "description": "The label for category Preparation in sidebar docs" + }, + "sidebar.docs.category.Shared-nothing deployment": { + "message": "Shared-nothing deployment", + "description": "The label for category Shared-nothing deployment in sidebar docs" + }, + "sidebar.docs.category.Shared-data deployment": { + "message": "Shared-data deployment", + "description": "The label for category Shared-data deployment in sidebar docs" + }, + "sidebar.docs.category.Manage your deployment": { + "message": "Manage your deployment", + "description": "The label for category Manage your deployment in sidebar docs" + }, + "sidebar.docs.category.Table Design": { + "message": "Table Design", + "description": "The label for category Table Design in sidebar docs" + }, + "sidebar.docs.category.Table types": { + "message": "Table types", + "description": "The label for category Table types in sidebar docs" + }, + "sidebar.docs.category.Data distribution": { + "message": "Data distribution", + "description": "The label for category Data distribution in sidebar docs" + }, + "sidebar.docs.category.Indexes": { + "message": "Indexes", + "description": "The label for category Indexes in sidebar docs" + }, + "sidebar.docs.category.Data Loading": { + "message": "Data Loading", + "description": "The label for category Data Loading in sidebar docs" + }, + "sidebar.docs.category.Loading overview": { + "message": "Loading overview", + "description": "The label for category Loading overview in sidebar docs" + }, + "sidebar.docs.category.Load from Object Storage": { + "message": "Load from Object Storage", + "description": "The label for category Load from Object Storage in sidebar docs" + }, + "sidebar.docs.category.Load data from Apache Kafka": { + "message": "Load data from Apache Kafka", + "description": "The label for category Load data from Apache Kafka in sidebar docs" + }, + "sidebar.docs.category.Load data from Apache Spark": { + "message": "Load data from Apache Spark", + "description": "The label for category Load data from Apache Spark in sidebar docs" + }, + "sidebar.docs.category.Data Unloading": { + "message": "Data Unloading", + "description": "The label for category Data Unloading in sidebar docs" + }, + "sidebar.docs.category.Data Lakes": { + "message": "Data Lakes", + "description": "The label for category Data Lakes in sidebar docs" + }, + "sidebar.docs.category.Catalog": { + "message": "Catalog", + "description": "The label for category Catalog in sidebar docs" + }, + "sidebar.docs.category.Iceberg": { + "message": "Iceberg", + "description": "The label for category Iceberg in sidebar docs" + }, + "sidebar.docs.category.Data cache": { + "message": "Data cache", + "description": "The label for category Data cache in sidebar docs" + }, + "sidebar.docs.category.Query Acceleration": { + "message": "Query Acceleration", + "description": "The label for category Query Acceleration in sidebar docs" + }, + "sidebar.docs.category.Asynchronous materialized views": { + "message": "Asynchronous materialized views", + "description": "The label for category Asynchronous materialized views in sidebar docs" + }, + "sidebar.docs.category.Use cases": { + "message": "Use cases", + "description": "The label for category Use cases in sidebar docs" + }, + "sidebar.docs.category.Caching": { + "message": "Caching", + "description": "The label for category Caching in sidebar docs" + }, + "sidebar.docs.category.Computing the number of distinct values": { + "message": "Computing the number of distinct values", + "description": "The label for category Computing the number of distinct values in sidebar docs" + }, + "sidebar.docs.category.Integrations": { + "message": "Integrations", + "description": "The label for category Integrations in sidebar docs" + }, + "sidebar.docs.category.Cloud Authentication": { + "message": "Cloud Authentication", + "description": "The label for category Cloud Authentication in sidebar docs" + }, + "sidebar.docs.category.Streaming Data": { + "message": "Streaming Data", + "description": "The label for category Streaming Data in sidebar docs" + }, + "sidebar.docs.category.Apache Kafka": { + "message": "Apache Kafka", + "description": "The label for category Apache Kafka in sidebar docs" + }, + "sidebar.docs.category.StarRocks Pipe": { + "message": "StarRocks Pipe", + "description": "The label for category StarRocks Pipe in sidebar docs" + }, + "sidebar.docs.category.Batch Loading Data": { + "message": "Batch Loading Data", + "description": "The label for category Batch Loading Data in sidebar docs" + }, + "sidebar.docs.category.Loading Tools": { + "message": "Loading Tools", + "description": "The label for category Loading Tools in sidebar docs" + }, + "sidebar.docs.category.BI Tools": { + "message": "BI Tools", + "description": "The label for category BI Tools in sidebar docs" + }, + "sidebar.docs.category.IDE Tools": { + "message": "IDE Tools", + "description": "The label for category IDE Tools in sidebar docs" + }, + "sidebar.docs.category.Administration": { + "message": "Administration", + "description": "The label for category Administration in sidebar docs" + }, + "sidebar.docs.category.Configuration": { + "message": "Configuration", + "description": "The label for category Configuration in sidebar docs" + }, + "sidebar.docs.category.Management": { + "message": "Management", + "description": "The label for category Management in sidebar docs" + }, + "sidebar.docs.category.Monitor and Alert": { + "message": "Monitor and Alert", + "description": "The label for category Monitor and Alert in sidebar docs" + }, + "sidebar.docs.category.Resource management": { + "message": "Resource management", + "description": "The label for category Resource management in sidebar docs" + }, + "sidebar.docs.category.User Privileges and Authentication": { + "message": "User Privileges and Authentication", + "description": "The label for category User Privileges and Authentication in sidebar docs" + }, + "sidebar.docs.category.Performance Tuning": { + "message": "Performance Tuning", + "description": "The label for category Performance Tuning in sidebar docs" + }, + "sidebar.docs.category.Query Profile": { + "message": "Query Profile", + "description": "The label for category Query Profile in sidebar docs" + }, + "sidebar.docs.category.Reference": { + "message": "Reference", + "description": "The label for category Reference in sidebar docs" + }, + "sidebar.docs.category.Data types": { + "message": "Data types", + "description": "The label for category Data types in sidebar docs" + }, + "sidebar.docs.category.Numeric": { + "message": "Numeric", + "description": "The label for category Numeric in sidebar docs" + }, + "sidebar.docs.category.String": { + "message": "String", + "description": "The label for category String in sidebar docs" + }, + "sidebar.docs.category.Date and Time": { + "message": "Date and Time", + "description": "The label for category Date and Time in sidebar docs" + }, + "sidebar.docs.category.Semi-structured": { + "message": "Semi-structured", + "description": "The label for category Semi-structured in sidebar docs" + }, + "sidebar.docs.category.Other": { + "message": "Other", + "description": "The label for category Other in sidebar docs" + }, + "sidebar.docs.category.SQL Functions": { + "message": "SQL Functions", + "description": "The label for category SQL Functions in sidebar docs" + }, + "sidebar.docs.category.Aggregate": { + "message": "Aggregate", + "description": "The label for category Aggregate in sidebar docs" + }, + "sidebar.docs.category.Array": { + "message": "Array", + "description": "The label for category Array in sidebar docs" + }, + "sidebar.docs.category.Binary": { + "message": "Binary", + "description": "The label for category Binary in sidebar docs" + }, + "sidebar.docs.category.Bit": { + "message": "Bit", + "description": "The label for category Bit in sidebar docs" + }, + "sidebar.docs.category.Bitmap": { + "message": "Bitmap", + "description": "The label for category Bitmap in sidebar docs" + }, + "sidebar.docs.category.Condition": { + "message": "Condition", + "description": "The label for category Condition in sidebar docs" + }, + "sidebar.docs.category.Cryptographic": { + "message": "Cryptographic", + "description": "The label for category Cryptographic in sidebar docs" + }, + "sidebar.docs.category.Date and time": { + "message": "Date and time", + "description": "The label for category Date and time in sidebar docs" + }, + "sidebar.docs.category.Dictionary": { + "message": "Dictionary", + "description": "The label for category Dictionary in sidebar docs" + }, + "sidebar.docs.category.Hash": { + "message": "Hash", + "description": "The label for category Hash in sidebar docs" + }, + "sidebar.docs.category.JSON": { + "message": "JSON", + "description": "The label for category JSON in sidebar docs" + }, + "sidebar.docs.category.JSON Constructor": { + "message": "JSON Constructor", + "description": "The label for category JSON Constructor in sidebar docs" + }, + "sidebar.docs.category.JSON query and processing": { + "message": "JSON query and processing", + "description": "The label for category JSON query and processing in sidebar docs" + }, + "sidebar.docs.category.Pattern matching": { + "message": "Pattern matching", + "description": "The label for category Pattern matching in sidebar docs" + }, + "sidebar.docs.category.Map": { + "message": "Map", + "description": "The label for category Map in sidebar docs" + }, + "sidebar.docs.category.Math": { + "message": "Math", + "description": "The label for category Math in sidebar docs" + }, + "sidebar.docs.category.Percentile": { + "message": "Percentile", + "description": "The label for category Percentile in sidebar docs" + }, + "sidebar.docs.category.Scalar": { + "message": "Scalar", + "description": "The label for category Scalar in sidebar docs" + }, + "sidebar.docs.category.Spatial": { + "message": "Spatial", + "description": "The label for category Spatial in sidebar docs" + }, + "sidebar.docs.category.Struct": { + "message": "Struct", + "description": "The label for category Struct in sidebar docs" + }, + "sidebar.docs.category.Table": { + "message": "Table", + "description": "The label for category Table in sidebar docs" + }, + "sidebar.docs.category.Utility": { + "message": "Utility", + "description": "The label for category Utility in sidebar docs" + }, + "sidebar.docs.category.SQL statements": { + "message": "SQL statements", + "description": "The label for category SQL statements in sidebar docs" + }, + "sidebar.docs.category.User account management": { + "message": "User account management", + "description": "The label for category User account management in sidebar docs" + }, + "sidebar.docs.category.Cluster management": { + "message": "Cluster management", + "description": "The label for category Cluster management in sidebar docs" + }, + "sidebar.docs.category.Nodes and processes": { + "message": "Nodes and processes", + "description": "The label for category Nodes and processes in sidebar docs" + }, + "sidebar.docs.category.Configuration variables": { + "message": "Configuration variables", + "description": "The label for category Configuration variables in sidebar docs" + }, + "sidebar.docs.category.Resource group": { + "message": "Resource group", + "description": "The label for category Resource group in sidebar docs" + }, + "sidebar.docs.category.Storage volume": { + "message": "Storage volume", + "description": "The label for category Storage volume in sidebar docs" + }, + "sidebar.docs.category.Tablet and replica": { + "message": "Tablet and replica", + "description": "The label for category Tablet and replica in sidebar docs" + }, + "sidebar.docs.category.File": { + "message": "File", + "description": "The label for category File in sidebar docs" + }, + "sidebar.docs.category.SQL blacklist": { + "message": "SQL blacklist", + "description": "The label for category SQL blacklist in sidebar docs" + }, + "sidebar.docs.category.Plugin": { + "message": "Plugin", + "description": "The label for category Plugin in sidebar docs" + }, + "sidebar.docs.category.Execution plan and profile": { + "message": "Execution plan and profile", + "description": "The label for category Execution plan and profile in sidebar docs" + }, + "sidebar.docs.category.Loading and unloading": { + "message": "Loading and unloading", + "description": "The label for category Loading and unloading in sidebar docs" + }, + "sidebar.docs.category.ETL": { + "message": "ETL", + "description": "The label for category ETL in sidebar docs" + }, + "sidebar.docs.category.pipe": { + "message": "pipe", + "description": "The label for category pipe in sidebar docs" + }, + "sidebar.docs.category.routine_load": { + "message": "routine_load", + "description": "The label for category routine_load in sidebar docs" + }, + "sidebar.docs.category.unloading": { + "message": "unloading", + "description": "The label for category unloading in sidebar docs" + }, + "sidebar.docs.category.Database": { + "message": "Database", + "description": "The label for category Database in sidebar docs" + }, + "sidebar.docs.category.Resource": { + "message": "Resource", + "description": "The label for category Resource in sidebar docs" + }, + "sidebar.docs.category.Table, bucket, partition, and index": { + "message": "Table, bucket, partition, and index", + "description": "The label for category Table, bucket, partition, and index in sidebar docs" + }, + "sidebar.docs.category.View": { + "message": "View", + "description": "The label for category View in sidebar docs" + }, + "sidebar.docs.category.Materialized View": { + "message": "Materialized View", + "description": "The label for category Materialized View in sidebar docs" + }, + "sidebar.docs.category.Function": { + "message": "Function", + "description": "The label for category Function in sidebar docs" + }, + "sidebar.docs.category.CBO statistics": { + "message": "CBO statistics", + "description": "The label for category CBO statistics in sidebar docs" + }, + "sidebar.docs.category.Backup and restore": { + "message": "Backup and restore", + "description": "The label for category Backup and restore in sidebar docs" + }, + "sidebar.docs.category.dictionary": { + "message": "dictionary", + "description": "The label for category dictionary in sidebar docs" + }, + "sidebar.docs.category.Information Schema": { + "message": "Information Schema", + "description": "The label for category Information Schema in sidebar docs" + }, + "sidebar.docs.category.System metadatabase": { + "message": "System metadatabase", + "description": "The label for category System metadatabase in sidebar docs" + }, + "sidebar.docs.category.FAQ": { + "message": "FAQ", + "description": "The label for category FAQ in sidebar docs" + }, + "sidebar.docs.category.Data Migration": { + "message": "Data Migration", + "description": "The label for category Data Migration in sidebar docs" + }, + "sidebar.docs.category.Benchmarks": { + "message": "Benchmarks", + "description": "The label for category Benchmarks in sidebar docs" + }, + "sidebar.docs.category.Developers": { + "message": "Developers", + "description": "The label for category Developers in sidebar docs" + }, + "sidebar.docs.category.build-starrocks": { + "message": "build-starrocks", + "description": "The label for category build-starrocks in sidebar docs" + }, + "sidebar.docs.category.code-style-guides": { + "message": "code-style-guides", + "description": "The label for category code-style-guides in sidebar docs" + }, + "sidebar.docs.category.development-environment": { + "message": "development-environment", + "description": "The label for category development-environment in sidebar docs" + }, + "sidebar.docs.category.trace-tools": { + "message": "trace-tools", + "description": "The label for category trace-tools in sidebar docs" + }, + "sidebar.docs.link.Kettle connector": { + "message": "Kettle connector", + "description": "The label for link Kettle connector in sidebar docs, linking to https://github.com/StarRocks/starrocks-connector-for-kettle" + }, + "sidebar.docs.link.DBT": { + "message": "DBT", + "description": "The label for link DBT in sidebar docs, linking to https://github.com/StarRocks/dbt-starrocks/blob/main/README.md" + } +} From 70c6e2117cc26427953ea07bf62ad8c95944dbef Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Tue, 11 Feb 2025 16:36:42 -0500 Subject: [PATCH 07/10] GPT translated UI Signed-off-by: DanRoscigno --- docs/docusaurus/i18n/ja/code.json | 34 +-- .../current.json | 4 +- .../current.json | 208 +++++++++--------- .../ja/docusaurus-theme-classic/footer.json | 12 +- .../ja/docusaurus-theme-classic/navbar.json | 20 +- docs/docusaurus/scripts/docker-build.sh | 1 + 6 files changed, 148 insertions(+), 131 deletions(-) diff --git a/docs/docusaurus/i18n/ja/code.json b/docs/docusaurus/i18n/ja/code.json index c30d9fe5ddfd0..3dce469b1c19d 100644 --- a/docs/docusaurus/i18n/ja/code.json +++ b/docs/docusaurus/i18n/ja/code.json @@ -1,27 +1,27 @@ { "feedback.textarealabel.what-can-we-do": { - "message": "What can we do to improve it? Please be as detailed as you like." + "message": "どのように改善できますか?できるだけ詳しく教えてください。" }, "feedback.humans": { - "message": "Real human beings read every single review." + "message": "すべてのレビューは本物の人間が読んでいます。" }, "feedback.general": { - "message": "Any general feedback you'd like to add?" + "message": "追加したい一般的なフィードバックはありますか?" }, "feedback.takeitall": { - "message": "We'll take it all... tell us how well we're doing or where we can improve." + "message": "すべて受け止めます… 私たちの良い点や改善すべき点を教えてください。" }, "feedback.title": { - "message": "What did you think of this doc?" + "message": "このドキュメントについてどう思いましたか?" }, "feedback.thanks": { - "message": "Thanks for your feedback." + "message": "フィードバックをありがとうございます。" }, "feedback.community": { - "message": "Connect with the community and devs, links in the top nav!" + "message": "コミュニティや開発者とつながりましょう。リンクは上部のナビにあります!" }, "feedback.send": { - "message": "Send your review!" + "message": "レビューを送信!" }, "theme.NotFound.title": { "message": "ページが見つかりません", @@ -219,19 +219,19 @@ "description": "The title attribute for toggle word wrapping button of code block lines" }, "theme.DocSidebarItem.expandCategoryAriaLabel": { - "message": "Expand sidebar category '{label}'", + "message": "サイドバーカテゴリ「{label}」を展開", "description": "The ARIA label to expand the sidebar category" }, "theme.DocSidebarItem.collapseCategoryAriaLabel": { - "message": "Collapse sidebar category '{label}'", + "message": "サイドバーカテゴリ「{label}」を折りたたむ", "description": "The ARIA label to collapse the sidebar category" }, "theme.NotFound.p2": { - "message": "このページにリンクしているサイトの所有者にリンクが壊れていることを伝えてください", + "message": "このページにリンクしているサイトの所有者に、リンクが壊れていることを知らせてください", "description": "The 2nd paragraph of the 404 page" }, "theme.NavBar.navAriaLabel": { - "message": "Main", + "message": "メイン", "description": "The ARIA label for the main navigation" }, "theme.navbar.mobileLanguageDropdown.label": { @@ -247,7 +247,7 @@ "description": "The label used in blog post item excerpts to link to full blog posts" }, "theme.blog.post.readMoreLabel": { - "message": "{title}についてもっと見る", + "message": "「{title}」についてもっと見る", "description": "The ARIA label for the link to full blog posts from excerpts" }, "theme.blog.post.readingTime.plurals": { @@ -267,11 +267,11 @@ "description": "The title attribute for collapse button of doc sidebar" }, "theme.docs.sidebar.navAriaLabel": { - "message": "Docs sidebar", + "message": "ドキュメントのサイドバー", "description": "The ARIA label for the sidebar navigation" }, "theme.docs.sidebar.closeSidebarButtonAriaLabel": { - "message": "Close navigation bar", + "message": "ナビゲーションバーを閉じる", "description": "The ARIA label for close button of mobile sidebar" }, "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { @@ -279,7 +279,7 @@ "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" }, "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { - "message": "Toggle navigation bar", + "message": "ナビゲーションバーを切り替え", "description": "The ARIA label for hamburger menu button of mobile navigation" }, "theme.docs.sidebar.expandButtonTitle": { @@ -295,7 +295,7 @@ "description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" }, "theme.SearchPage.existingResultsTitle": { - "message": "『{query}』の検索結果", + "message": "「{query}」の検索結果", "description": "The search page title for non-empty query" }, "theme.SearchPage.emptyResultsTitle": { diff --git a/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs-releasenotes/current.json b/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs-releasenotes/current.json index e11ca86716bd4..df6d232ec8575 100644 --- a/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs-releasenotes/current.json +++ b/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs-releasenotes/current.json @@ -1,6 +1,6 @@ { "version.label": { - "message": "Next", + "message": "次へ", "description": "The label for version current" }, "sidebar.docs.category.StarRocks": { @@ -8,7 +8,7 @@ "description": "The label for category StarRocks in sidebar docs" }, "sidebar.docs.category.Connectors": { - "message": "Connectors", + "message": "コネクタ", "description": "The label for category Connectors in sidebar docs" } } diff --git a/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs/current.json b/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs/current.json index 57c8eecc3a2b2..521b43156ba1c 100644 --- a/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs/current.json +++ b/docs/docusaurus/i18n/ja/docusaurus-plugin-content-docs/current.json @@ -4,83 +4,83 @@ "description": "The label for version current" }, "sidebar.docs.category.Introduction to StarRocks": { - "message": "Introduction to StarRocks", + "message": "StarRocks の紹介", "description": "The label for category Introduction to StarRocks in sidebar docs" }, "sidebar.docs.category.Quick Start": { - "message": "Quick Start", + "message": "クイックスタート", "description": "The label for category Quick Start in sidebar docs" }, "sidebar.docs.category.Project Help": { - "message": "Project Help", + "message": "プロジェクトヘルプ", "description": "The label for category Project Help in sidebar docs" }, "sidebar.docs.category.Deployment": { - "message": "Deployment", + "message": "デプロイ", "description": "The label for category Deployment in sidebar docs" }, "sidebar.docs.category.Preparation": { - "message": "Preparation", + "message": "準備", "description": "The label for category Preparation in sidebar docs" }, "sidebar.docs.category.Shared-nothing deployment": { - "message": "Shared-nothing deployment", + "message": "Shared-nothing デプロイ", "description": "The label for category Shared-nothing deployment in sidebar docs" }, "sidebar.docs.category.Shared-data deployment": { - "message": "Shared-data deployment", + "message": "Shared-data デプロイ", "description": "The label for category Shared-data deployment in sidebar docs" }, "sidebar.docs.category.Manage your deployment": { - "message": "Manage your deployment", + "message": "デプロイ管理", "description": "The label for category Manage your deployment in sidebar docs" }, "sidebar.docs.category.Table Design": { - "message": "Table Design", + "message": "テーブル設計", "description": "The label for category Table Design in sidebar docs" }, "sidebar.docs.category.Table types": { - "message": "Table types", + "message": "テーブルの種類", "description": "The label for category Table types in sidebar docs" }, "sidebar.docs.category.Data distribution": { - "message": "Data distribution", + "message": "データ分散", "description": "The label for category Data distribution in sidebar docs" }, "sidebar.docs.category.Indexes": { - "message": "Indexes", + "message": "インデックス", "description": "The label for category Indexes in sidebar docs" }, "sidebar.docs.category.Data Loading": { - "message": "Data Loading", + "message": "データロード", "description": "The label for category Data Loading in sidebar docs" }, "sidebar.docs.category.Loading overview": { - "message": "Loading overview", + "message": "ロード概要", "description": "The label for category Loading overview in sidebar docs" }, "sidebar.docs.category.Load from Object Storage": { - "message": "Load from Object Storage", + "message": "オブジェクトストレージからのロード", "description": "The label for category Load from Object Storage in sidebar docs" }, "sidebar.docs.category.Load data from Apache Kafka": { - "message": "Load data from Apache Kafka", + "message": "Apache Kafka からのデータロード", "description": "The label for category Load data from Apache Kafka in sidebar docs" }, "sidebar.docs.category.Load data from Apache Spark": { - "message": "Load data from Apache Spark", + "message": "Apache Spark からのデータロード", "description": "The label for category Load data from Apache Spark in sidebar docs" }, "sidebar.docs.category.Data Unloading": { - "message": "Data Unloading", + "message": "データアンロード", "description": "The label for category Data Unloading in sidebar docs" }, "sidebar.docs.category.Data Lakes": { - "message": "Data Lakes", + "message": "データレイク", "description": "The label for category Data Lakes in sidebar docs" }, "sidebar.docs.category.Catalog": { - "message": "Catalog", + "message": "カタログ", "description": "The label for category Catalog in sidebar docs" }, "sidebar.docs.category.Iceberg": { @@ -88,39 +88,39 @@ "description": "The label for category Iceberg in sidebar docs" }, "sidebar.docs.category.Data cache": { - "message": "Data cache", + "message": "データキャッシュ", "description": "The label for category Data cache in sidebar docs" }, "sidebar.docs.category.Query Acceleration": { - "message": "Query Acceleration", + "message": "クエリ高速化", "description": "The label for category Query Acceleration in sidebar docs" }, "sidebar.docs.category.Asynchronous materialized views": { - "message": "Asynchronous materialized views", + "message": "非同期マテリアライズドビュー", "description": "The label for category Asynchronous materialized views in sidebar docs" }, "sidebar.docs.category.Use cases": { - "message": "Use cases", + "message": "ユースケース", "description": "The label for category Use cases in sidebar docs" }, "sidebar.docs.category.Caching": { - "message": "Caching", + "message": "キャッシング", "description": "The label for category Caching in sidebar docs" }, "sidebar.docs.category.Computing the number of distinct values": { - "message": "Computing the number of distinct values", + "message": "異なる値の数の計算", "description": "The label for category Computing the number of distinct values in sidebar docs" }, "sidebar.docs.category.Integrations": { - "message": "Integrations", + "message": "統合", "description": "The label for category Integrations in sidebar docs" }, "sidebar.docs.category.Cloud Authentication": { - "message": "Cloud Authentication", + "message": "クラウド認証", "description": "The label for category Cloud Authentication in sidebar docs" }, "sidebar.docs.category.Streaming Data": { - "message": "Streaming Data", + "message": "ストリーミングデータ", "description": "The label for category Streaming Data in sidebar docs" }, "sidebar.docs.category.Apache Kafka": { @@ -132,123 +132,123 @@ "description": "The label for category StarRocks Pipe in sidebar docs" }, "sidebar.docs.category.Batch Loading Data": { - "message": "Batch Loading Data", + "message": "バッチデータロード", "description": "The label for category Batch Loading Data in sidebar docs" }, "sidebar.docs.category.Loading Tools": { - "message": "Loading Tools", + "message": "ロードツール", "description": "The label for category Loading Tools in sidebar docs" }, "sidebar.docs.category.BI Tools": { - "message": "BI Tools", + "message": "BI ツール", "description": "The label for category BI Tools in sidebar docs" }, "sidebar.docs.category.IDE Tools": { - "message": "IDE Tools", + "message": "IDE ツール", "description": "The label for category IDE Tools in sidebar docs" }, "sidebar.docs.category.Administration": { - "message": "Administration", + "message": "管理", "description": "The label for category Administration in sidebar docs" }, "sidebar.docs.category.Configuration": { - "message": "Configuration", + "message": "設定", "description": "The label for category Configuration in sidebar docs" }, "sidebar.docs.category.Management": { - "message": "Management", + "message": "マネジメント", "description": "The label for category Management in sidebar docs" }, "sidebar.docs.category.Monitor and Alert": { - "message": "Monitor and Alert", + "message": "監視とアラート", "description": "The label for category Monitor and Alert in sidebar docs" }, "sidebar.docs.category.Resource management": { - "message": "Resource management", + "message": "リソース管理", "description": "The label for category Resource management in sidebar docs" }, "sidebar.docs.category.User Privileges and Authentication": { - "message": "User Privileges and Authentication", + "message": "ユーザー権限と認証", "description": "The label for category User Privileges and Authentication in sidebar docs" }, "sidebar.docs.category.Performance Tuning": { - "message": "Performance Tuning", + "message": "パフォーマンスチューニング", "description": "The label for category Performance Tuning in sidebar docs" }, "sidebar.docs.category.Query Profile": { - "message": "Query Profile", + "message": "クエリプロファイル", "description": "The label for category Query Profile in sidebar docs" }, "sidebar.docs.category.Reference": { - "message": "Reference", + "message": "リファレンス", "description": "The label for category Reference in sidebar docs" }, "sidebar.docs.category.Data types": { - "message": "Data types", + "message": "データ型", "description": "The label for category Data types in sidebar docs" }, "sidebar.docs.category.Numeric": { - "message": "Numeric", + "message": "数値型", "description": "The label for category Numeric in sidebar docs" }, "sidebar.docs.category.String": { - "message": "String", + "message": "文字列", "description": "The label for category String in sidebar docs" }, "sidebar.docs.category.Date and Time": { - "message": "Date and Time", + "message": "日付と時刻", "description": "The label for category Date and Time in sidebar docs" }, "sidebar.docs.category.Semi-structured": { - "message": "Semi-structured", + "message": "セミ構造化データ", "description": "The label for category Semi-structured in sidebar docs" }, "sidebar.docs.category.Other": { - "message": "Other", + "message": "その他", "description": "The label for category Other in sidebar docs" }, "sidebar.docs.category.SQL Functions": { - "message": "SQL Functions", + "message": "SQL 関数", "description": "The label for category SQL Functions in sidebar docs" }, "sidebar.docs.category.Aggregate": { - "message": "Aggregate", + "message": "集約関数", "description": "The label for category Aggregate in sidebar docs" }, "sidebar.docs.category.Array": { - "message": "Array", + "message": "配列", "description": "The label for category Array in sidebar docs" }, "sidebar.docs.category.Binary": { - "message": "Binary", + "message": "バイナリ", "description": "The label for category Binary in sidebar docs" }, "sidebar.docs.category.Bit": { - "message": "Bit", + "message": "ビット", "description": "The label for category Bit in sidebar docs" }, "sidebar.docs.category.Bitmap": { - "message": "Bitmap", + "message": "ビットマップ", "description": "The label for category Bitmap in sidebar docs" }, "sidebar.docs.category.Condition": { - "message": "Condition", + "message": "条件", "description": "The label for category Condition in sidebar docs" }, "sidebar.docs.category.Cryptographic": { - "message": "Cryptographic", + "message": "暗号", "description": "The label for category Cryptographic in sidebar docs" }, "sidebar.docs.category.Date and time": { - "message": "Date and time", + "message": "日付と時間", "description": "The label for category Date and time in sidebar docs" }, "sidebar.docs.category.Dictionary": { - "message": "Dictionary", + "message": "辞書", "description": "The label for category Dictionary in sidebar docs" }, "sidebar.docs.category.Hash": { - "message": "Hash", + "message": "ハッシュ", "description": "The label for category Hash in sidebar docs" }, "sidebar.docs.category.JSON": { @@ -256,99 +256,99 @@ "description": "The label for category JSON in sidebar docs" }, "sidebar.docs.category.JSON Constructor": { - "message": "JSON Constructor", + "message": "JSONコンストラクタ", "description": "The label for category JSON Constructor in sidebar docs" }, "sidebar.docs.category.JSON query and processing": { - "message": "JSON query and processing", + "message": "JSONクエリと処理", "description": "The label for category JSON query and processing in sidebar docs" }, "sidebar.docs.category.Pattern matching": { - "message": "Pattern matching", + "message": "パターンマッチング", "description": "The label for category Pattern matching in sidebar docs" }, "sidebar.docs.category.Map": { - "message": "Map", + "message": "マップ", "description": "The label for category Map in sidebar docs" }, "sidebar.docs.category.Math": { - "message": "Math", + "message": "数学", "description": "The label for category Math in sidebar docs" }, "sidebar.docs.category.Percentile": { - "message": "Percentile", + "message": "パーセンタイル", "description": "The label for category Percentile in sidebar docs" }, "sidebar.docs.category.Scalar": { - "message": "Scalar", + "message": "スカラー", "description": "The label for category Scalar in sidebar docs" }, "sidebar.docs.category.Spatial": { - "message": "Spatial", + "message": "空間", "description": "The label for category Spatial in sidebar docs" }, "sidebar.docs.category.Struct": { - "message": "Struct", + "message": "構造体", "description": "The label for category Struct in sidebar docs" }, "sidebar.docs.category.Table": { - "message": "Table", + "message": "テーブル", "description": "The label for category Table in sidebar docs" }, "sidebar.docs.category.Utility": { - "message": "Utility", + "message": "ユーティリティ", "description": "The label for category Utility in sidebar docs" }, "sidebar.docs.category.SQL statements": { - "message": "SQL statements", + "message": "SQLステートメント", "description": "The label for category SQL statements in sidebar docs" }, "sidebar.docs.category.User account management": { - "message": "User account management", + "message": "ユーザーアカウント管理", "description": "The label for category User account management in sidebar docs" }, "sidebar.docs.category.Cluster management": { - "message": "Cluster management", + "message": "クラスター管理", "description": "The label for category Cluster management in sidebar docs" }, "sidebar.docs.category.Nodes and processes": { - "message": "Nodes and processes", + "message": "ノードとプロセス", "description": "The label for category Nodes and processes in sidebar docs" }, "sidebar.docs.category.Configuration variables": { - "message": "Configuration variables", + "message": "設定変数", "description": "The label for category Configuration variables in sidebar docs" }, "sidebar.docs.category.Resource group": { - "message": "Resource group", + "message": "リソースグループ", "description": "The label for category Resource group in sidebar docs" }, "sidebar.docs.category.Storage volume": { - "message": "Storage volume", + "message": "ストレージボリューム", "description": "The label for category Storage volume in sidebar docs" }, "sidebar.docs.category.Tablet and replica": { - "message": "Tablet and replica", + "message": "タブレットとレプリカ", "description": "The label for category Tablet and replica in sidebar docs" }, "sidebar.docs.category.File": { - "message": "File", + "message": "ファイル", "description": "The label for category File in sidebar docs" }, "sidebar.docs.category.SQL blacklist": { - "message": "SQL blacklist", + "message": "SQLブラックリスト", "description": "The label for category SQL blacklist in sidebar docs" }, "sidebar.docs.category.Plugin": { - "message": "Plugin", + "message": "プラグイン", "description": "The label for category Plugin in sidebar docs" }, "sidebar.docs.category.Execution plan and profile": { - "message": "Execution plan and profile", + "message": "実行計画とプロファイル", "description": "The label for category Execution plan and profile in sidebar docs" }, "sidebar.docs.category.Loading and unloading": { - "message": "Loading and unloading", + "message": "ロードとアンロード", "description": "The label for category Loading and unloading in sidebar docs" }, "sidebar.docs.category.ETL": { @@ -356,59 +356,59 @@ "description": "The label for category ETL in sidebar docs" }, "sidebar.docs.category.pipe": { - "message": "pipe", + "message": "パイプ", "description": "The label for category pipe in sidebar docs" }, "sidebar.docs.category.routine_load": { - "message": "routine_load", + "message": "ルーチンロード", "description": "The label for category routine_load in sidebar docs" }, "sidebar.docs.category.unloading": { - "message": "unloading", + "message": "アンロード", "description": "The label for category unloading in sidebar docs" }, "sidebar.docs.category.Database": { - "message": "Database", + "message": "データベース", "description": "The label for category Database in sidebar docs" }, "sidebar.docs.category.Resource": { - "message": "Resource", + "message": "リソース", "description": "The label for category Resource in sidebar docs" }, "sidebar.docs.category.Table, bucket, partition, and index": { - "message": "Table, bucket, partition, and index", + "message": "テーブル、バケット、パーティション、インデックス", "description": "The label for category Table, bucket, partition, and index in sidebar docs" }, "sidebar.docs.category.View": { - "message": "View", + "message": "ビュー", "description": "The label for category View in sidebar docs" }, "sidebar.docs.category.Materialized View": { - "message": "Materialized View", + "message": "マテリアライズドビュー", "description": "The label for category Materialized View in sidebar docs" }, "sidebar.docs.category.Function": { - "message": "Function", + "message": "関数", "description": "The label for category Function in sidebar docs" }, "sidebar.docs.category.CBO statistics": { - "message": "CBO statistics", + "message": "CBO統計", "description": "The label for category CBO statistics in sidebar docs" }, "sidebar.docs.category.Backup and restore": { - "message": "Backup and restore", + "message": "バックアップとリストア", "description": "The label for category Backup and restore in sidebar docs" }, "sidebar.docs.category.dictionary": { - "message": "dictionary", + "message": "辞書", "description": "The label for category dictionary in sidebar docs" }, "sidebar.docs.category.Information Schema": { - "message": "Information Schema", + "message": "情報スキーマ", "description": "The label for category Information Schema in sidebar docs" }, "sidebar.docs.category.System metadatabase": { - "message": "System metadatabase", + "message": "システムメタデータベース", "description": "The label for category System metadatabase in sidebar docs" }, "sidebar.docs.category.FAQ": { @@ -416,15 +416,15 @@ "description": "The label for category FAQ in sidebar docs" }, "sidebar.docs.category.Data Migration": { - "message": "Data Migration", + "message": "データ移行", "description": "The label for category Data Migration in sidebar docs" }, "sidebar.docs.category.Benchmarks": { - "message": "Benchmarks", + "message": "ベンチマーク", "description": "The label for category Benchmarks in sidebar docs" }, "sidebar.docs.category.Developers": { - "message": "Developers", + "message": "開発者", "description": "The label for category Developers in sidebar docs" }, "sidebar.docs.category.build-starrocks": { @@ -432,19 +432,19 @@ "description": "The label for category build-starrocks in sidebar docs" }, "sidebar.docs.category.code-style-guides": { - "message": "code-style-guides", + "message": "コードスタイルガイド", "description": "The label for category code-style-guides in sidebar docs" }, "sidebar.docs.category.development-environment": { - "message": "development-environment", + "message": "開発環境", "description": "The label for category development-environment in sidebar docs" }, "sidebar.docs.category.trace-tools": { - "message": "trace-tools", + "message": "トレースツール", "description": "The label for category trace-tools in sidebar docs" }, "sidebar.docs.link.Kettle connector": { - "message": "Kettle connector", + "message": "Kettle コネクター", "description": "The label for link Kettle connector in sidebar docs, linking to https://github.com/StarRocks/starrocks-connector-for-kettle" }, "sidebar.docs.link.DBT": { diff --git a/docs/docusaurus/i18n/ja/docusaurus-theme-classic/footer.json b/docs/docusaurus/i18n/ja/docusaurus-theme-classic/footer.json index 98e33c48295b3..2f429bfcff6ee 100644 --- a/docs/docusaurus/i18n/ja/docusaurus-theme-classic/footer.json +++ b/docs/docusaurus/i18n/ja/docusaurus-theme-classic/footer.json @@ -4,11 +4,19 @@ "description": "The label of footer link with label=StarRocks.io linking to https://www.starrocks.io/" }, "link.item.label.Privacy policy": { - "message": "Privacy policy", + "message": "プライバシーポリシー", "description": "The label of footer link with label=Privacy policy linking to https://www.starrocks.io/product/privacy-policy" }, "copyright": { - "message": "Docs built with Docusaurus.", + "message": "Docusaurus で作成されたドキュメント。", "description": "The footer copyright" + }, + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.item.label.Documentation": { + "message": "Documentation", + "description": "The label of footer link with label=Documentation linking to /docs/introduction/StarRocks_intro" } } diff --git a/docs/docusaurus/i18n/ja/docusaurus-theme-classic/navbar.json b/docs/docusaurus/i18n/ja/docusaurus-theme-classic/navbar.json index ba10795ec18ec..47765b6285dd5 100644 --- a/docs/docusaurus/i18n/ja/docusaurus-theme-classic/navbar.json +++ b/docs/docusaurus/i18n/ja/docusaurus-theme-classic/navbar.json @@ -4,19 +4,19 @@ "description": "The title in the navbar" }, "logo.alt": { - "message": "StarRocks Logo", + "message": "StarRocks ロゴ", "description": "The alt text of navbar logo" }, "item.label.Docs": { - "message": "Docs", + "message": "ドキュメント", "description": "Navbar item with label Docs" }, "item.label.Release Notes": { - "message": "Release Notes", + "message": "リリースノート", "description": "Navbar item with label Release Notes" }, "item.label.Community": { - "message": "Community", + "message": "コミュニティ", "description": "Navbar item with label Community" }, "item.label.社区群": { @@ -24,7 +24,7 @@ "description": "Navbar item with label 社区群" }, "item.label.Privacy policy": { - "message": "Privacy policy", + "message": "プライバシーポリシー", "description": "Navbar item with label Privacy policy" }, "item.label.Slack": { @@ -32,7 +32,7 @@ "description": "Navbar item with label Slack" }, "item.label.Forum": { - "message": "Forum", + "message": "フォーラム", "description": "Navbar item with label Forum" }, "item.label.StarRocks中文社区论坛": { @@ -42,5 +42,13 @@ "item.label.技术支持渠道": { "message": "技术支持渠道", "description": "Navbar item with label 技术支持渠道" + }, + "item.label.Documentation": { + "message": "Documentation", + "description": "Navbar item with label Documentation" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" } } diff --git a/docs/docusaurus/scripts/docker-build.sh b/docs/docusaurus/scripts/docker-build.sh index d0c2fe89a3449..81a3efdfc0828 100755 --- a/docs/docusaurus/scripts/docker-build.sh +++ b/docs/docusaurus/scripts/docker-build.sh @@ -8,5 +8,6 @@ docker run --rm --interactive --tty \ --volume $DOCS_DIR/en:/app/docusaurus/docs \ --volume "$DOCS_DIR/docusaurus/i18n:/app/docusaurus/i18n" \ --volume "$DOCS_DIR/zh:/app/docusaurus/i18n/zh/docusaurus-plugin-content-docs/current" \ + --volume "$DOCS_DIR/ja:/app/docusaurus/i18n/ja/docusaurus-plugin-content-docs/current" \ -p 3000:3000 \ docs-build /app/docusaurus/scripts/build-and-serve.sh From fce89af162ad9a0f8f8a851ad16bf80574656c09 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Wed, 12 Feb 2025 09:35:45 -0500 Subject: [PATCH 08/10] Update docker instructions Signed-off-by: DanRoscigno --- docs/ja/quick_start/hudi.md | 410 +++++++++++++++++++++++++++ docs/ja/table_design/table_design.md | 58 ++++ docs/translation/README.md | 46 +-- 3 files changed, 481 insertions(+), 33 deletions(-) create mode 100644 docs/ja/quick_start/hudi.md create mode 100644 docs/ja/table_design/table_design.md diff --git a/docs/ja/quick_start/hudi.md b/docs/ja/quick_start/hudi.md new file mode 100644 index 0000000000000..d9235f006d679 --- /dev/null +++ b/docs/ja/quick_start/hudi.md @@ -0,0 +1,410 @@ +--- +description: Apache Hudi を使用したデータレイクハウス +displayed_sidebar: docs +--- +import DataLakeIntro from '../_assets/commonMarkdown/datalakeIntro.md' +import Clients from '../_assets/quick-start/_clientsCompose.mdx' +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Apache Hudi レイクハウス + +## 概要 + +- Docker compose を使用して、Object Storage、Apache Spark、Hudi、StarRocks をデプロイ +- Apache Spark を使用して小さなデータセットを Hudi にロード +- StarRocks を設定して、external catalog を使用して Hive Metastore にアクセス +- データが存在する場所で StarRocks を使用してデータをクエリ + + + +## 前提条件 + +### StarRocks `demo` リポジトリ + +[StarRocks demo リポジトリ](https://github.com/StarRocks/demo/) をローカルマシンにクローンします。 + +このガイドのすべての手順は、クローンした `demo` GitHub リポジトリの `demo/documentation-samples/hudi/` ディレクトリから実行されます。 + +### Docker + +- Docker セットアップ: Mac の場合は、[Install Docker Desktop on Mac](https://docs.docker.com/desktop/install/mac-install/) に定義されている手順に従ってください。Spark-SQL クエリを実行するには、Docker に少なくとも 5 GB のメモリと 4 つの CPU が割り当てられていることを確認してください (Docker → Preferences → Advanced を参照)。そうしないと、メモリの問題で Spark-SQL クエリが終了する可能性があります。 +- Docker に割り当てられた 20 GB の空きディスクスペース + +### SQL クライアント + +Docker 環境で提供される SQL クライアントを使用するか、システム上のものを使用できます。多くの MySQL 互換クライアントが動作します。 + +## 設定 + +`demo/documentation-samples/hudi` ディレクトリに移動し、ファイルを確認します。これは Hudi のチュートリアルではないため、すべての設定ファイルが説明されるわけではありませんが、どのように設定されているかを確認するためにどこを見ればよいかを知っておくことが重要です。`hudi/` ディレクトリには、Docker でサービスを起動および設定するために使用される `docker-compose.yml` ファイルがあります。以下はそれらのサービスと簡単な説明のリストです。 + +### Docker サービス + +| サービス | 責任 | +|--------------------------|--------------------------------------------------------------| +| **`starrocks-fe`** | メタデータ管理、クライアント接続、クエリプランとスケジューリング | +| **`starrocks-be`** | クエリプランの実行 | +| **`metastore_db`** | Hive メタデータを保存するために使用される Postgres DB | +| **`hive_metastore`** | Apache Hive メタストアを提供 | +| **`minio`** と **`mc`** | MinIO オブジェクトストレージと MinIO コマンドラインクライアント | +| **`spark-hudi`** | 分散コンピューティングとトランザクションデータレイクプラットフォーム | + +### 設定ファイル + +`hudi/conf/` ディレクトリには、`spark-hudi` コンテナにマウントされる設定ファイルがあります。 + +##### `core-site.xml` + +このファイルには、オブジェクトストレージ関連の設定が含まれています。詳細情報はこのドキュメントの最後にあります。 + +##### `spark-defaults.conf` + +Hive、MinIO、および Spark SQL の設定。 + +##### `hudi-defaults.conf` + +`spark-shell` の警告を抑制するために使用されるデフォルトファイル。 + +##### `hadoop-metrics2-hbase.properties` + +`spark-shell` の警告を抑制するために使用される空のファイル。 + +##### `hadoop-metrics2-s3a-file-system.properties` + +`spark-shell` の警告を抑制するために使用される空のファイル。 + +## デモクラスターの立ち上げ + +このデモシステムは、StarRocks、Hudi、MinIO、および Spark サービスで構成されています。Docker compose を実行してクラスターを立ち上げます。 + +```bash +docker compose up --detach --wait --wait-timeout 60 +``` + +```plaintext +[+] Running 8/8 + ✔ Network hudi Created 0.0s + ✔ Container hudi-starrocks-fe-1 Healthy 0.1s + ✔ Container hudi-minio-1 Healthy 0.1s + ✔ Container hudi-metastore_db-1 Healthy 0.1s + ✔ Container hudi-starrocks-be-1 Healthy 0.0s + ✔ Container hudi-mc-1 Healthy 0.0s + ✔ Container hudi-hive-metastore-1 Healthy 0.0s + ✔ Container hudi-spark-hudi-1 Healthy 0.1s + ``` + +:::tip + +多くのコンテナが実行されている場合、`docker compose ps` の出力は `jq` にパイプすると読みやすくなります。 + +```bash +docker compose ps --format json | \ +jq '{Service: .Service, State: .State, Status: .Status}' +``` + +```json +{ + "Service": "hive-metastore", + "State": "running", + "Status": "Up About a minute (healthy)" +} +{ + "Service": "mc", + "State": "running", + "Status": "Up About a minute" +} +{ + "Service": "metastore_db", + "State": "running", + "Status": "Up About a minute" +} +{ + "Service": "minio", + "State": "running", + "Status": "Up About a minute" +} +{ + "Service": "spark-hudi", + "State": "running", + "Status": "Up 33 seconds (healthy)" +} +{ + "Service": "starrocks-be", + "State": "running", + "Status": "Up About a minute (healthy)" +} +{ + "Service": "starrocks-fe", + "State": "running", + "Status": "Up About a minute (healthy)" +} +``` + +::: + +## MinIO の設定 + +Spark コマンドを実行するときに、作成されるテーブルのベースパスを `s3a` URI に設定します。 + +```java +val basePath = "s3a://huditest/hudi_coders" +``` + +このステップでは、MinIO にバケット `huditest` を作成します。MinIO コンソールはポート `9000` で実行されています。 + +### MinIO に認証 + +ブラウザを開いて [http://localhost:9000/](http://localhost:9000/) にアクセスし、認証します。ユーザー名とパスワードは `docker-compose.yml` に指定されており、`admin` と `password` です。 + +### バケットの作成 + +左側のナビゲーションで **Buckets** を選択し、**Create Bucket +** を選択します。バケット名を `huditest` とし、**Create Bucket** を選択します。 + +![Create bucket huditest](../_assets/quick-start/hudi-test-bucket.png) + +## テーブルを作成してデータを投入し、Hive に同期 + +:::tip + +このコマンドや他の `docker compose` コマンドは、`docker-compose.yml` ファイルを含むディレクトリから実行してください。 +::: + +`spark-hudi` サービスで `spark-shell` を開きます。 + +```bash +docker compose exec spark-hudi spark-shell +``` + +:::note +`spark-shell` が起動するときに不正なリフレクティブアクセスに関する警告が表示されますが、これらの警告は無視してかまいません。 +::: + +`scala>` プロンプトで次のコマンドを実行して: + +- この Spark セッションを設定し、データをロード、処理、書き込み +- データフレームを作成し、それを Hudi テーブルに書き込み +- Hive Metastore に同期 + +```scala +import org.apache.spark.sql.functions._ +import org.apache.spark.sql.types._ +import org.apache.spark.sql.Row +import org.apache.spark.sql.SaveMode._ +import org.apache.hudi.DataSourceReadOptions._ +import org.apache.hudi.DataSourceWriteOptions._ +import org.apache.hudi.config.HoodieWriteConfig._ +import scala.collection.JavaConversions._ + +val schema = StructType( Array( + StructField("language", StringType, true), + StructField("users", StringType, true), + StructField("id", StringType, true) + )) + +val rowData= Seq(Row("Java", "20000", "a"), + Row("Python", "100000", "b"), + Row("Scala", "3000", "c")) + + +val df = spark.createDataFrame(rowData,schema) + +val databaseName = "hudi_sample" +val tableName = "hudi_coders_hive" +val basePath = "s3a://huditest/hudi_coders" + +df.write.format("hudi"). + option(org.apache.hudi.config.HoodieWriteConfig.TABLE_NAME, tableName). + option(RECORDKEY_FIELD_OPT_KEY, "id"). + option(PARTITIONPATH_FIELD_OPT_KEY, "language"). + option(PRECOMBINE_FIELD_OPT_KEY, "users"). + option("hoodie.datasource.write.hive_style_partitioning", "true"). + option("hoodie.datasource.hive_sync.enable", "true"). + option("hoodie.datasource.hive_sync.mode", "hms"). + option("hoodie.datasource.hive_sync.database", databaseName). + option("hoodie.datasource.hive_sync.table", tableName). + option("hoodie.datasource.hive_sync.partition_fields", "language"). + option("hoodie.datasource.hive_sync.partition_extractor_class", "org.apache.hudi.hive.MultiPartKeysValueExtractor"). + option("hoodie.datasource.hive_sync.metastore.uris", "thrift://hive-metastore:9083"). + mode(Overwrite). + save(basePath) +System.exit(0) +``` + +:::note +次の警告が表示されます。 + +```java +WARN +org.apache.hudi.metadata.HoodieBackedTableMetadata - +Metadata table was not found at path +s3a://huditest/hudi_coders/.hoodie/metadata +``` + +これは無視してかまいません。このファイルはこの `spark-shell` セッション中に自動的に作成されます。 + +また、次の警告も表示されます。 + +```bash +78184 [main] WARN org.apache.hadoop.fs.s3a.S3ABlockOutputStream - +Application invoked the Syncable API against stream writing to +hudi_coders/.hoodie/metadata/files/.files-0000_00000000000000.log.1_0-0-0. +This is unsupported +``` + +この警告は、オブジェクトストレージを使用している場合、書き込み中のログファイルの同期がサポートされていないことを示しています。ファイルは閉じられたときにのみ同期されます。詳細は [Stack Overflow](https://stackoverflow.com/a/74886836/10424890) を参照してください。 +::: + +上記の spark-shell セッションの最後のコマンドはコンテナを終了するはずです。終了しない場合は、Enter キーを押すと終了します。 + +## StarRocks の設定 + +### StarRocks に接続 + +`starrocks-fe` サービスによって提供される MySQL クライアントを使用して StarRocks に接続するか、お気に入りの SQL クライアントを使用して、MySQL プロトコルを使用して `localhost:9030` に接続するように設定します。 + +```bash +docker compose exec starrocks-fe \ + mysql -P 9030 -h 127.0.0.1 -u root --prompt="StarRocks > " +``` + +### StarRocks と Hudi のリンクを作成 + +このガイドの最後に external catalog に関する詳細情報へのリンクがあります。このステップで作成される external catalog は、Docker で実行されている Hive Metastore (HMS) へのリンクとして機能します。 + +```sql +CREATE EXTERNAL CATALOG hudi_catalog_hms +PROPERTIES +( + "type" = "hudi", + "hive.metastore.type" = "hive", + "hive.metastore.uris" = "thrift://hive-metastore:9083", + "aws.s3.use_instance_profile" = "false", + "aws.s3.access_key" = "admin", + "aws.s3.secret_key" = "password", + "aws.s3.enable_ssl" = "false", + "aws.s3.enable_path_style_access" = "true", + "aws.s3.endpoint" = "http://minio:9000" +); +``` + +```plaintext +Query OK, 0 rows affected (0.59 sec) +``` + +### 新しいカタログを使用 + +```sql +SET CATALOG hudi_catalog_hms; +``` + +```plaintext +Query OK, 0 rows affected (0.01 sec) +``` + +### Spark で挿入されたデータに移動 + +```sql +SHOW DATABASES; +``` + +```plaintext ++--------------------+ +| Database | ++--------------------+ +| default | +| hudi_sample | +| information_schema | ++--------------------+ +2 rows in set (0.40 sec) +``` + +```sql +USE hudi_sample; +``` + +```plaintext +Reading table information for completion of table and column names +You can turn off this feature to get a quicker startup with -A + +Database changed +``` + +```sql +SHOW TABLES; +``` + +```plaintext ++-----------------------+ +| Tables_in_hudi_sample | ++-----------------------+ +| hudi_coders_hive | ++-----------------------+ +1 row in set (0.07 sec) +``` + +### StarRocks で Hudi のデータをクエリ + +このクエリを2回実行します。最初の実行はデータがまだ StarRocks にキャッシュされていないため、完了までに約5秒かかる場合があります。2回目のクエリは非常に速くなります。 + +```sql +SELECT * from hudi_coders_hive\G +``` + +:::tip +StarRocks ドキュメントの一部の SQL クエリは、セミコロンの代わりに `\G` で終わります。`\G` は mysql CLI にクエリ結果を縦に表示させます。 + +多くの SQL クライアントは縦のフォーマット出力を解釈しないため、mysql CLI を使用していない場合は `\G` を `;` に置き換える必要があります。 +::: + +```plaintext +*************************** 1. row *************************** + _hoodie_commit_time: 20240208165522561 + _hoodie_commit_seqno: 20240208165522561_0_0 + _hoodie_record_key: c +_hoodie_partition_path: language=Scala + _hoodie_file_name: bb29249a-b69d-4c32-843b-b7142d8dc51c-0_0-27-1221_20240208165522561.parquet + language: Scala + users: 3000 + id: c +*************************** 2. row *************************** + _hoodie_commit_time: 20240208165522561 + _hoodie_commit_seqno: 20240208165522561_2_0 + _hoodie_record_key: a +_hoodie_partition_path: language=Java + _hoodie_file_name: 12fc14aa-7dc4-454c-b710-1ad0556c9386-0_2-27-1223_20240208165522561.parquet + language: Java + users: 20000 + id: a +*************************** 3. row *************************** + _hoodie_commit_time: 20240208165522561 + _hoodie_commit_seqno: 20240208165522561_1_0 + _hoodie_record_key: b +_hoodie_partition_path: language=Python + _hoodie_file_name: 51977039-d71e-4dd6-90d4-0c93656dafcf-0_1-27-1222_20240208165522561.parquet + language: Python + users: 100000 + id: b +3 rows in set (0.15 sec) +``` + +## まとめ + +このチュートリアルでは、StarRocks external catalog を使用して、Hudi external catalog を使用してデータをそのままクエリできることを示しました。他にも Iceberg、Delta Lake、JDBC カタログを使用した多くの統合が利用可能です。 + +このチュートリアルでは以下を行いました。 + +- Docker で StarRocks と Hudi/Spark/MinIO 環境をデプロイ +- Apache Spark を使用して小さなデータセットを Hudi にロード +- Hudi カタログへのアクセスを提供する StarRocks external catalog を設定 +- データレイクからデータをコピーせずに StarRocks で SQL を使用してデータをクエリ + +## 詳細情報 + +[StarRocks Catalogs](../data_source/catalog/catalog_overview.md) + +[Apache Hudi quickstart](https://hudi.apache.org/docs/quick-start-guide/) (includes Spark) + +[Apache Hudi S3 configuration](https://hudi.apache.org/docs/s3_hoodie/) + +[Apache Spark configuration docs](https://spark.apache.org/docs/latest/configuration.html) \ No newline at end of file diff --git a/docs/ja/table_design/table_design.md b/docs/ja/table_design/table_design.md new file mode 100644 index 0000000000000..2f95a3ff4b607 --- /dev/null +++ b/docs/ja/table_design/table_design.md @@ -0,0 +1,58 @@ +--- +displayed_sidebar: docs +sidebar_position: 5 +--- + +# カタログ、データベース、テーブル + +StarRocksは、内部データを管理するために内部カタログを使用し、データレイク内の外部データにアクセスするために外部カタログを使用します。StarRocksに保存されているデータは、1つ以上のデータベースで構成される内部カタログ内で管理されます。データベースは、データを保存、管理、操作するために、テーブル、マテリアライズドビュー、ビューなどのさまざまなオブジェクトを管理します。StarRocksは、オブジェクトに対する操作を行うユーザーの権限を制御する権限システムを採用しており、データのセキュリティを強化しています。 + +![img](../_assets/table_design/Catalog_db_tbl.png) + +## [Catalogs](../data_source/catalog/catalog_overview.md) + +カタログは、内部カタログと外部カタログに分類されます。各クラスターには、1つ以上のデータベースを含むことができる唯一の内部カタログ `default_catalog` があります。StarRocksクラスターの内部カタログは、クラスターにロードされたデータとマテリアライズドビューを管理します。StarRocksはデータウェアハウスとしてデータを保存することができ、特に大規模データに対する複雑なクエリアナリティクスにおいて、クエリパフォーマンスを大幅に向上させます。 + +一方、外部カタログはデータレイク内の外部データへのアクセスを可能にします。StarRocksをクエリエンジンとして使用し、データをStarRocksにロードすることなく、直接データレイク内のデータをクエリすることができます。 + +## データベース + +データベースは、データを保存、管理、操作するためのテーブル、ビュー、マテリアライズドビューなどのデータオブジェクトの集合です。 + +## [Tables](./table_types/table_types.md) + +テーブルは、内部テーブルと外部テーブルに分類されます。 + +**内部テーブル** + +内部テーブルは内部カタログで管理されます。内部テーブルのデータはStarRocksに保存されます。内部テーブルは内部カタログの下のデータベースで管理されます。内部テーブルは行と列で構成されており、各行はレコードを表し、各列はデータ行の属性またはフィールドを表します。 + +:::note + +ここでの内部テーブルの行と列は論理的な概念です。StarRocksはテーブルに列指向(カラムナ)ストレージを使用しています。物理的には、列内のデータはデータブロックに分割され、エンコード、圧縮され、ディスクに永続的に保存されます。 + +::: + +StarRocksは、Primary Key tables、Duplicate Key tables、Aggregate tables、Unique Key tablesの4種類の内部テーブルを提供し、生データ、リアルタイムデータ、集計データなど、さまざまなビジネスニーズに応じたデータを保存します。 + +内部テーブルは、パーティショニング + バケッティングという2層のデータ分散戦略を採用し、均等なデータ分散を実現します。さらに、各バケットのレプリカはBEsに均等に分散され、高いデータ可用性を保証します。 + +**外部テーブル** + +外部テーブルは外部カタログで管理されます。外部テーブルのデータは実際には外部データソースに保存されています。StarRocksはこれらの外部テーブルのメタデータのみを保存し、外部データソースからデータをクエリするためにこれらのテーブルを使用できます。 + +## [Materialized views](../using_starrocks/async_mv/Materialized_view.md) + +マテリアライズドビューは、1つ以上のベーステーブルからの事前計算されたクエリ結果を保持する特別な物理テーブルです。マテリアライズドビューは、同期マテリアライズドビューと非同期マテリアライズドビューに分類されます。非同期マテリアライズドビューは、複数のベーステーブル(内部テーブルおよび外部テーブル)からの事前計算結果を保存し、さまざまな集計演算子をサポートできるため、より強力です。ベーステーブルで複雑なクエリが実行されると、StarRocksはマテリアライズドビューに保存された事前計算結果を自動的に再利用し、クエリアクセラレーションを実現し、データレイクでのクエリを加速し、データモデリングを確立します。 + +## [Views](../sql-reference/sql-statements/View/CREATE_VIEW.md) + +ビュー、または論理ビューは、データを保持しない仮想テーブルです。ビューは、他の既存の物理テーブルに対するクエリの結果としてデータを表示するだけです。ビューを定義するクエリは、クエリ内でビューが参照されるたびに実行されます。 + +## [Privileges](../administration/user_privs/privilege_overview.md) + +権限は、どのユーザーがどのオブジェクトに対してどの操作を行えるかを決定します。StarRocksは、アイデンティティベースのアクセス制御とロールベースのアクセス制御の2種類の権限モデルを採用しています。最初に権限をロールに割り当て、次にロールをユーザーに割り当てることができます。この場合、権限はロールを通じてユーザーに渡されます。または、ユーザーのアイデンティティに直接権限を割り当てることもできます。 + +## ストレージとコンピューティングの分離アーキテクチャにおけるデータストレージ + +v3.0以降、StarRocksは新しいストレージとコンピューティングの分離(共有データ)アーキテクチャを導入しました。データストレージはBEsから分離されています。データはリモートオブジェクトストレージまたはHDFSに永続的に保存され、ローカルディスクはホットデータのキャッシングに使用され、クエリを加速します。 \ No newline at end of file diff --git a/docs/translation/README.md b/docs/translation/README.md index 23ab8e538c24a..acf7e4742745e 100644 --- a/docs/translation/README.md +++ b/docs/translation/README.md @@ -1,18 +1,10 @@ # Translating docs with GPT -This README describes using GPT-4o to translate from Chinese to English, or from English to Chinese. The system used is specific to Docusaurus Markdown and MDX. We are using code provided by Weights and Biases, as they also use Docusaurus and have expertise with LLMs. - -> Note: -> -> Known issues: -> -> Frontmatter `keywords` entries are not allowed. [This PR](https://github.com/tcapelle/gpt_translate/pull/16) adds `keywords`, `unlisted`, and `sidebar_label` to the frontmatter. For now, test with docs that do not include `keywords` or `sidebar_label` entries. -> -> Pydantic error about serialization: There is an error coming up after the translation is complete. I have not debugged this yet, I will see if the author of the tranlation package can help, he knows way more about Python than I do. +## 1. Build the Docker image -To translate an English doc: + See the [README in the `DanRoscigno/gpt-translate` repo](https://github.com/DanRoscigno/gpt_translate/blob/main/README.md). Build the Docker image from there. -## Set up the environment +## 2. Set up the environment There are three environment variables that need to be set in the file starrocks/docs/translation/.env: @@ -35,8 +27,7 @@ OPENAI_API_KEY=sk-proj-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa WANDB_API_KEY=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb GIT_PYTHON_REFRESH=quiet ``` - -## Files to translate +## 3. Identify the files to translate Provide the paths of the files to translate in the file `starrocks/docs/translation/files.txt` @@ -50,7 +41,7 @@ The entries in the file should be relative to the `starrocks/docs/translation/` -### From English to Chinese +#### From English to Chinese or Japanese `starrocks/docs/translation/files.txt` @@ -62,19 +53,9 @@ The entries in the file should be relative to the `starrocks/docs/translation/` -### From English to Japanese - -`starrocks/docs/translation/files.txt` - -```bash -../en/quick_start/routine-load.md -../en/deployment/helm.md -``` - - -### From Chinese to English +#### From Chinese to English `starrocks/docs/translation/files.txt` @@ -87,16 +68,15 @@ The entries in the file should be relative to the `starrocks/docs/translation/` -## Build the Docker image - -This probably only needs to be done once unless the folks from Weights and Biases modify the Python package `gpt_translate`. +This README describes using GPT-4o to translate from Chinese to English, or from English to Chinese. The system used is specific to Docusaurus Markdown and MDX. We are using code provided by Weights and Biases, as they also use Docusaurus and have expertise with LLMs. -```bash -cd docs/translation -docker build -f translation.Dockerfile -t translate . -``` +> Note: +> +> Known issues: +> +> Pydantic error about serialization: There is an error coming up after the translation is complete. I have not debugged this yet, I will see if the author of the tranlation package can help, he knows way more about Python than I do. -## Translate the docs +## 4. Translate the docs Change dir back up to the `starrocks` folder so that you can mount the `docs/` folder in the container. From bdca8437eb6c90c39c52fca8854f99da373a5f0b Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Wed, 12 Feb 2025 16:22:30 -0500 Subject: [PATCH 09/10] GPT translated Signed-off-by: DanRoscigno --- docs/ja/quick_start/iceberg.md | 493 +++++++++++++++++++++++++++++++++ 1 file changed, 493 insertions(+) create mode 100644 docs/ja/quick_start/iceberg.md diff --git a/docs/ja/quick_start/iceberg.md b/docs/ja/quick_start/iceberg.md new file mode 100644 index 0000000000000..cda853cfa35f3 --- /dev/null +++ b/docs/ja/quick_start/iceberg.md @@ -0,0 +1,493 @@ +--- +description: Apache Iceberg を用いたデータレイクハウス +displayed_sidebar: docs +--- +import DataLakeIntro from '../_assets/commonMarkdown/datalakeIntro.md' +import Clients from '../_assets/quick-start/_clientsCompose.mdx' + +# Apache Iceberg レイクハウス + +## 概要 + +- Docker compose を使用して Object Storage、Apache Spark、Iceberg catalog、StarRocks をデプロイ +- 2023年5月のニューヨーク市グリーンタクシーデータを Iceberg データレイクにロード +- StarRocks を Iceberg catalog にアクセスできるように設定 +- データが存在する場所で StarRocks を使用してクエリを実行 + + + +## 前提条件 + +### Docker + +- [Docker](https://docs.docker.com/engine/install/) +- Docker に割り当てられた 5 GB の RAM +- Docker に割り当てられた 20 GB の空きディスクスペース + +### SQL クライアント + +Docker 環境で提供される SQL クライアントを使用するか、システム上のクライアントを使用できます。多くの MySQL 互換クライアントが動作し、このガイドでは DBeaver と MySQL Workbench の設定をカバーしています。 + +### curl + +`curl` はデータセットをダウンロードするために使用されます。OS のプロンプトで `curl` または `curl.exe` を実行してインストールされているか確認してください。curl がインストールされていない場合は、[こちらから入手してください](https://curl.se/dlwiz/?type=bin)。 + +--- + +## StarRocks 用語 + +### FE + +フロントエンドノードは、メタデータ管理、クライアント接続管理、クエリ計画、およびクエリスケジューリングを担当します。各 FE はメモリ内にメタデータの完全なコピーを保存および維持し、FEs 間での無差別なサービスを保証します。 + +### BE + +バックエンド (BE) ノードは、データストレージと共有なしデプロイメントでのクエリ計画の実行を担当します。外部 catalog(このガイドで使用される Iceberg catalog など)が使用される場合、BE ノードは外部 catalog からデータをキャッシュしてクエリを高速化できます。 + +--- + +## 環境 + +このガイドでは 6 つのコンテナ(サービス)が使用され、すべて Docker compose でデプロイされます。サービスとその責任は次のとおりです: + +| サービス | 責任 | +|---------------------|--------------------------------------------------------------| +| **`starrocks-fe`** | メタデータ管理、クライアント接続、クエリ計画とスケジューリング | +| **`starrocks-be`** | クエリ計画の実行 | +| **`rest`** | Iceberg catalog(メタデータサービス)の提供 | +| **`spark-iceberg`** | PySpark を実行するための Apache Spark 環境 | +| **`mc`** | MinIO 設定(MinIO コマンドラインクライアント) | +| **`minio`** | MinIO オブジェクトストレージ | + +## Docker 構成と NYC グリーンタクシーデータのダウンロード + +必要な 3 つのコンテナを含む環境を提供するために、StarRocks は Docker compose ファイルを提供します。curl を使用して compose ファイルとデータセットをダウンロードします。 + +Docker compose ファイル: + +```bash +mkdir iceberg +cd iceberg +curl -O https://raw.githubusercontent.com/StarRocks/demo/master/documentation-samples/iceberg/docker-compose.yml +``` + +データセット: + +```bash +curl -O https://raw.githubusercontent.com/StarRocks/demo/master/documentation-samples/iceberg/datasets/green_tripdata_2023-05.parquet +``` + +## Docker で環境を開始 + +:::tip +このコマンドと他の `docker compose` コマンドは、`docker-compose.yml` ファイルを含むディレクトリから実行してください。 +::: + +```bash +docker compose up -d +``` + +```plaintext +[+] Building 0.0s (0/0) docker:desktop-linux +[+] Running 6/6 + ✔ Container iceberg-rest Started 0.0s + ✔ Container minio Started 0.0s + ✔ Container starrocks-fe Started 0.0s + ✔ Container mc Started 0.0s + ✔ Container spark-iceberg Started 0.0s + ✔ Container starrocks-be Started +``` + +## 環境のステータスを確認 + +サービスの進行状況を確認します。FE と BE が正常になるまで約 30 秒かかります。 + +`docker compose ps` を実行して、FE と BE が `healthy` のステータスを示すまで待ちます。他のサービスにはヘルスチェック構成がありませんが、それらと対話することで動作しているかどうかがわかります: + +:::tip +`jq` がインストールされていて、`docker compose ps` の短いリストを好む場合は、次を試してください: + +```bash +docker compose ps --format json | jq '{Service: .Service, State: .State, Status: .Status}' +``` + +::: + +```bash +docker compose ps +``` + +```bash +SERVICE CREATED STATUS PORTS +rest 4 minutes ago Up 4 minutes 0.0.0.0:8181->8181/tcp +mc 4 minutes ago Up 4 minutes +minio 4 minutes ago Up 4 minutes 0.0.0.0:9000-9001->9000-9001/tcp +spark-iceberg 4 minutes ago Up 4 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:8888->8888/tcp, 0.0.0.0:10000-10001->10000-10001/tcp +starrocks-be 4 minutes ago Up 4 minutes (healthy) 0.0.0.0:8040->8040/tcp +starrocks-fe 4 minutes ago Up 4 minutes (healthy) 0.0.0.0:8030->8030/tcp, 0.0.0.0:9020->9020/tcp, 0.0.0.0:9030->9030/tcp +``` + +--- + +## PySpark + +Iceberg と対話する方法はいくつかありますが、このガイドでは PySpark を使用します。PySpark に慣れていない場合は、詳細情報セクションからリンクされているドキュメントがありますが、実行する必要があるすべてのコマンドは以下に提供されています。 + +### グリーンタクシーデータセット + +データを spark-iceberg コンテナにコピーします。このコマンドはデータセットファイルを `spark-iceberg` サービスの `/opt/spark/` ディレクトリにコピーします: + +```bash +docker compose \ +cp green_tripdata_2023-05.parquet spark-iceberg:/opt/spark/ +``` + +### PySpark の起動 + +このコマンドは `spark-iceberg` サービスに接続し、`pyspark` コマンドを実行します: + +```bash +docker compose exec -it spark-iceberg pyspark +``` + +```py +Welcome to + ____ __ + / __/__ ___ _____/ /__ + _\ \/ _ \/ _ `/ __/ '_/ + /__ / .__/\_,_/_/ /_/\_\ version 3.5.0 + /_/ + +Using Python version 3.9.18 (main, Nov 1 2023 11:04:44) +Spark context Web UI available at http://6ad5cb0e6335:4041 +Spark context available as 'sc' (master = local[*], app id = local-1701967093057). +SparkSession available as 'spark'. +>>> +``` + +### データセットをデータフレームに読み込む + +データフレームは Spark SQL の一部であり、データベーステーブルやスプレッドシートに似たデータ構造を提供します。 + +グリーンタクシーデータは NYC Taxi and Limousine Commission によって Parquet 形式で提供されています。`/opt/spark` ディレクトリからファイルをロードし、最初の数レコードを確認するために最初の数列の最初の 3 行のデータを SELECT します。これらのコマンドは `pyspark` セッションで実行する必要があります。コマンド: + +- ディスクからデータセットファイルを読み込み、`df` という名前のデータフレームに格納 +- Parquet ファイルのスキーマを表示 + +```py +df = spark.read.parquet("/opt/spark/green_tripdata_2023-05.parquet") +df.printSchema() +``` + +```plaintext +root + |-- VendorID: integer (nullable = true) + |-- lpep_pickup_datetime: timestamp_ntz (nullable = true) + |-- lpep_dropoff_datetime: timestamp_ntz (nullable = true) + |-- store_and_fwd_flag: string (nullable = true) + |-- RatecodeID: long (nullable = true) + |-- PULocationID: integer (nullable = true) + |-- DOLocationID: integer (nullable = true) + |-- passenger_count: long (nullable = true) + |-- trip_distance: double (nullable = true) + |-- fare_amount: double (nullable = true) + |-- extra: double (nullable = true) + |-- mta_tax: double (nullable = true) + |-- tip_amount: double (nullable = true) + |-- tolls_amount: double (nullable = true) + |-- ehail_fee: double (nullable = true) + |-- improvement_surcharge: double (nullable = true) + |-- total_amount: double (nullable = true) + |-- payment_type: long (nullable = true) + |-- trip_type: long (nullable = true) + |-- congestion_surcharge: double (nullable = true) + +>>> +``` + +最初の数行(3 行)のデータの最初の数列(7 列)を確認します: + +```python +df.select(df.columns[:7]).show(3) +``` + +```plaintext ++--------+--------------------+---------------------+------------------+----------+------------+------------+ +|VendorID|lpep_pickup_datetime|lpep_dropoff_datetime|store_and_fwd_flag|RatecodeID|PULocationID|DOLocationID| ++--------+--------------------+---------------------+------------------+----------+------------+------------+ +| 2| 2023-05-01 00:52:10| 2023-05-01 01:05:26| N| 1| 244| 213| +| 2| 2023-05-01 00:29:49| 2023-05-01 00:50:11| N| 1| 33| 100| +| 2| 2023-05-01 00:25:19| 2023-05-01 00:32:12| N| 1| 244| 244| ++--------+--------------------+---------------------+------------------+----------+------------+------------+ +only showing top 3 rows +``` + +### テーブルへの書き込み + +このステップで作成されるテーブルは、次のステップで StarRocks で利用可能になる catalog に含まれます。 + +- Catalog: `demo` +- データベース: `nyc` +- テーブル: `greentaxis` + +```python +df.writeTo("demo.nyc.greentaxis").create() +``` + +## StarRocks を Iceberg Catalog にアクセスできるように設定 + +PySpark からは今すぐ退出することができますが、新しいターミナルを開いて SQL コマンドを実行することもできます。新しいターミナルを開く場合は、続行する前に `docker-compose.yml` ファイルを含む `quickstart` ディレクトリにディレクトリを変更してください。 + +### SQL クライアントで StarRocks に接続 + +#### SQL クライアント + + + +--- + +PySpark セッションを終了し、StarRocks に接続できます。 + +:::tip + +このコマンドは、`docker-compose.yml` ファイルを含むディレクトリから実行してください。 + +mysql CLI 以外のクライアントを使用している場合は、今すぐ開いてください。 +::: + +```bash +docker compose exec starrocks-fe \ + mysql -P 9030 -h 127.0.0.1 -u root --prompt="StarRocks > " +``` + +```plaintext +StarRocks > +``` + +### 外部 catalog を作成 + +外部 catalog は、StarRocks が Iceberg データを StarRocks のデータベースやテーブルにあるかのように操作できるようにする構成です。個々の構成プロパティはコマンドの後に詳述されます。 + +```sql +CREATE EXTERNAL CATALOG 'iceberg' +COMMENT "External catalog to Apache Iceberg on MinIO" +PROPERTIES +( + "type"="iceberg", + "iceberg.catalog.type"="rest", + "iceberg.catalog.uri"="http://iceberg-rest:8181", + "iceberg.catalog.warehouse"="warehouse", + "aws.s3.access_key"="admin", + "aws.s3.secret_key"="password", + "aws.s3.endpoint"="http://minio:9000", + "aws.s3.enable_path_style_access"="true", + "client.factory"="com.starrocks.connector.iceberg.IcebergAwsClientFactory" +); +``` + +#### PROPERTIES + +| プロパティ | 説明 | +|:---------------------------------|:-------------------------------------------------------------------------------------------| +|`type` | この例では `iceberg` タイプです。他のオプションには Hive、Hudi、Delta Lake、JDBC があります。| +|`iceberg.catalog.type` | この例では `rest` が使用されています。Tabular は使用される Docker イメージを提供し、Tabular は REST を使用します。| +|`iceberg.catalog.uri` | REST サーバーのエンドポイントです。| +|`iceberg.catalog.warehouse` | Iceberg catalog の識別子です。この場合、compose ファイルで指定されたウェアハウス名は `warehouse` です。| +|`aws.s3.access_key` | MinIO のキーです。この場合、キーとパスワードは compose ファイルで `admin` に設定されています。| +|`aws.s3.secret_key` | パスワードです。| +|`aws.s3.endpoint` | MinIO のエンドポイントです。| +|`aws.s3.enable_path_style_access` | MinIO をオブジェクトストレージとして使用する場合、これは必須です。MinIO はこの形式を期待します `http://host:port//` | +|`client.factory` | このプロパティを `iceberg.IcebergAwsClientFactory` に設定することで、`aws.s3.access_key` と `aws.s3.secret_key` パラメータが認証に使用されます。| + +```sql +SHOW CATALOGS; +``` + +```plaintext ++-----------------+----------+------------------------------------------------------------------+ +| Catalog | Type | Comment | ++-----------------+----------+------------------------------------------------------------------+ +| default_catalog | Internal | An internal catalog contains this cluster's self-managed tables. | +| iceberg | Iceberg | External catalog to Apache Iceberg on MinIO | ++-----------------+----------+------------------------------------------------------------------+ +2 rows in set (0.03 sec) +``` + +```sql +SET CATALOG iceberg; +``` + +```sql +SHOW DATABASES; +``` + +:::tip +表示されるデータベースは、PySpark セッションで作成されました。CATALOG `iceberg` を追加したとき、データベース `nyc` が StarRocks で表示可能になりました。 +::: + +```plaintext ++--------------------+ +| Database | ++--------------------+ +| information_schema | +| nyc | ++--------------------+ +2 rows in set (0.07 sec) +``` + +```sql +USE nyc; +``` + +```plaintext +Reading table information for completion of table and column names +You can turn off this feature to get a quicker startup with -A + +Database changed +``` + +```sql +SHOW TABLES; +``` + +```plaintext ++---------------+ +| Tables_in_nyc | ++---------------+ +| greentaxis | ++---------------+ +1 rows in set (0.05 sec) +``` + +```sql +DESCRIBE greentaxis; +``` + +:::tip +StarRocks が使用するスキーマを、以前の PySpark セッションの `df.printSchema()` の出力と比較してください。Spark の `timestamp_ntz` データ型は StarRocks の `DATETIME` などとして表現されています。 +::: + +```plaintext ++-----------------------+---------------------+------+-------+---------+-------+---------+ +| Field | Type | Null | Key | Default | Extra | Comment | ++-----------------------+---------------------+------+-------+---------+-------+---------+ +| VendorID | INT | Yes | false | NULL | | NULL | +| lpep_pickup_datetime | DATETIME | Yes | false | NULL | | NULL | +| lpep_dropoff_datetime | DATETIME | Yes | false | NULL | | NULL | +| store_and_fwd_flag | VARCHAR(1073741824) | Yes | false | NULL | | NULL | +| RatecodeID | BIGINT | Yes | false | NULL | | NULL | +| PULocationID | INT | Yes | false | NULL | | NULL | +| DOLocationID | INT | Yes | false | NULL | | NULL | +| passenger_count | BIGINT | Yes | false | NULL | | NULL | +| trip_distance | DOUBLE | Yes | false | NULL | | NULL | +| fare_amount | DOUBLE | Yes | false | NULL | | NULL | +| extra | DOUBLE | Yes | false | NULL | | NULL | +| mta_tax | DOUBLE | Yes | false | NULL | | NULL | +| tip_amount | DOUBLE | Yes | false | NULL | | NULL | +| tolls_amount | DOUBLE | Yes | false | NULL | | NULL | +| ehail_fee | DOUBLE | Yes | false | NULL | | NULL | +| improvement_surcharge | DOUBLE | Yes | false | NULL | | NULL | +| total_amount | DOUBLE | Yes | false | NULL | | NULL | +| payment_type | BIGINT | Yes | false | NULL | | NULL | +| trip_type | BIGINT | Yes | false | NULL | | NULL | +| congestion_surcharge | DOUBLE | Yes | false | NULL | | NULL | ++-----------------------+---------------------+------+-------+---------+-------+---------+ +20 rows in set (0.03 sec) +``` + +:::tip +StarRocks のドキュメントにある SQL クエリの一部は、セミコロンの代わりに `\G` で終わります。`\G` は mysql CLI にクエリ結果を縦に表示させます。 + +多くの SQL クライアントは縦のフォーマット出力を解釈しないため、mysql CLI を使用していない場合は `\G` を `;` に置き換えるべきです。 +::: + +## StarRocks でのクエリ + +### ピックアップ日時形式の確認 + +```sql +SELECT lpep_pickup_datetime FROM greentaxis LIMIT 10; +``` + +```plaintext ++----------------------+ +| lpep_pickup_datetime | ++----------------------+ +| 2023-05-01 00:52:10 | +| 2023-05-01 00:29:49 | +| 2023-05-01 00:25:19 | +| 2023-05-01 00:07:06 | +| 2023-05-01 00:43:31 | +| 2023-05-01 00:51:54 | +| 2023-05-01 00:27:46 | +| 2023-05-01 00:27:14 | +| 2023-05-01 00:24:14 | +| 2023-05-01 00:46:55 | ++----------------------+ +10 rows in set (0.07 sec) +``` + +#### 忙しい時間帯を見つける + +このクエリは、1日の時間ごとにトリップを集計し、1日の中で最も忙しい時間が18:00であることを示します。 + +```sql +SELECT COUNT(*) AS trips, + hour(lpep_pickup_datetime) AS hour_of_day +FROM greentaxis +GROUP BY hour_of_day +ORDER BY trips DESC; +``` + +```plaintext ++-------+-------------+ +| trips | hour_of_day | ++-------+-------------+ +| 5381 | 18 | +| 5253 | 17 | +| 5091 | 16 | +| 4736 | 15 | +| 4393 | 14 | +| 4275 | 19 | +| 3893 | 12 | +| 3816 | 11 | +| 3685 | 13 | +| 3616 | 9 | +| 3530 | 10 | +| 3361 | 20 | +| 3315 | 8 | +| 2917 | 21 | +| 2680 | 7 | +| 2322 | 22 | +| 1735 | 23 | +| 1202 | 6 | +| 1189 | 0 | +| 806 | 1 | +| 606 | 2 | +| 513 | 3 | +| 451 | 5 | +| 408 | 4 | ++-------+-------------+ +24 rows in set (0.08 sec) +``` + +--- + +## まとめ + +このチュートリアルでは、StarRocks の外部 catalog を使用して、Iceberg REST catalog を使用してデータをそのままクエリできることを示しました。Hive、Hudi、Delta Lake、JDBC catalog を使用した他の多くの統合が利用可能です。 + +このチュートリアルでは以下を行いました: + +- Docker で StarRocks と Iceberg/PySpark/MinIO 環境をデプロイ +- Iceberg catalog へのアクセスを提供するために StarRocks の外部 catalog を設定 +- ニューヨーク市が提供するタクシーデータを Iceberg データレイクにロード +- データレイクからデータをコピーせずに StarRocks で SQL を使用してデータをクエリ + +## 詳細情報 + +[StarRocks Catalogs](../data_source/catalog/catalog_overview.md) + +[Apache Iceberg documentation](https://iceberg.apache.org/docs/latest/) および [Quickstart (includes PySpark)](https://iceberg.apache.org/spark-quickstart/) + +[Green Taxi Trip Records](https://www.nyc.gov/site/tlc/about/tlc-trip-record-data.page) データセットは、ニューヨーク市によって提供され、これらの[利用規約](https://www.nyc.gov/home/terms-of-use.page)および[プライバシーポリシー](https://www.nyc.gov/home/privacy-policy.page)に従います。 \ No newline at end of file From cba0ded7849439f444827f11b72e244a2c03d817 Mon Sep 17 00:00:00 2001 From: EsoragotoSpirit Date: Thu, 13 Feb 2025 17:44:28 +0800 Subject: [PATCH 10/10] [Doc] Proofreading Signed-off-by: EsoragotoSpirit --- docs/ja/deployment/helm.md | 4 +- docs/ja/quick_start/hudi.md | 2 +- docs/ja/quick_start/iceberg.md | 12 +- docs/ja/quick_start/routine-load.md | 156 +++++++++--------- .../en-to-ja-configs/language_dicts/ja.yaml | 3 + 5 files changed, 88 insertions(+), 89 deletions(-) diff --git a/docs/ja/deployment/helm.md b/docs/ja/deployment/helm.md index 33a50f53d2d5e..e8ec8a8b6edf2 100644 --- a/docs/ja/deployment/helm.md +++ b/docs/ja/deployment/helm.md @@ -2,7 +2,7 @@ displayed_sidebar: docs --- -# Deploy StarRocks with Helm +# Helmを使用してStarRocksをデプロイする [Helm](https://helm.sh/) は、Kubernetes のパッケージマネージャーです。[Helm Chart](https://helm.sh/docs/topics/charts/) は Helm パッケージであり、Kubernetes クラスター上でアプリケーションを実行するために必要なすべてのリソース定義を含んでいます。このトピックでは、Helm を使用して Kubernetes クラスター上に StarRocks クラスターを自動的にデプロイする方法について説明します。 @@ -130,7 +130,7 @@ displayed_sidebar: docs - StarRocks クラスターをデプロイする際にルートユーザーのパスワードを自動的に設定するには、[Initialize root user password](https://github.com/StarRocks/starrocks-kubernetes-operator/blob/main/doc/initialize_root_password_howto.md) を参照してください。 -- StarRocks 存算分离集群で CREATE TABLE ステートメントを実行した後に発生する次のエラーを解決する方法。 +- StarRocks 共有データクラスタで CREATE TABLE ステートメントを実行した後に発生する次のエラーを解決する方法。 - **エラーメッセージ** diff --git a/docs/ja/quick_start/hudi.md b/docs/ja/quick_start/hudi.md index d9235f006d679..6217d8ffef9fa 100644 --- a/docs/ja/quick_start/hudi.md +++ b/docs/ja/quick_start/hudi.md @@ -11,7 +11,7 @@ import TabItem from '@theme/TabItem'; ## 概要 -- Docker compose を使用して、Object Storage、Apache Spark、Hudi、StarRocks をデプロイ +- Docker compose を使用して、オブジェクトストレージ、Apache Spark、Hudi、StarRocks をデプロイ - Apache Spark を使用して小さなデータセットを Hudi にロード - StarRocks を設定して、external catalog を使用して Hive Metastore にアクセス - データが存在する場所で StarRocks を使用してデータをクエリ diff --git a/docs/ja/quick_start/iceberg.md b/docs/ja/quick_start/iceberg.md index cda853cfa35f3..4bc7ebab65129 100644 --- a/docs/ja/quick_start/iceberg.md +++ b/docs/ja/quick_start/iceberg.md @@ -9,7 +9,7 @@ import Clients from '../_assets/quick-start/_clientsCompose.mdx' ## 概要 -- Docker compose を使用して Object Storage、Apache Spark、Iceberg catalog、StarRocks をデプロイ +- Docker compose を使用して オブジェクトストレージ、Apache Spark、Iceberg catalog、StarRocks をデプロイ - 2023年5月のニューヨーク市グリーンタクシーデータを Iceberg データレイクにロード - StarRocks を Iceberg catalog にアクセスできるように設定 - データが存在する場所で StarRocks を使用してクエリを実行 @@ -38,11 +38,11 @@ Docker 環境で提供される SQL クライアントを使用するか、シ ### FE -フロントエンドノードは、メタデータ管理、クライアント接続管理、クエリ計画、およびクエリスケジューリングを担当します。各 FE はメモリ内にメタデータの完全なコピーを保存および維持し、FEs 間での無差別なサービスを保証します。 +フロントエンド(FE)ノードは、メタデータ管理、クライアント接続管理、クエリプラン、およびクエリスケジューリングを担当します。各 FE はメモリ内にメタデータの完全なコピーを保存および維持し、FE 間での無差別なサービスを保証します。 ### BE -バックエンド (BE) ノードは、データストレージと共有なしデプロイメントでのクエリ計画の実行を担当します。外部 catalog(このガイドで使用される Iceberg catalog など)が使用される場合、BE ノードは外部 catalog からデータをキャッシュしてクエリを高速化できます。 +バックエンド (BE) ノードは、データストレージと共有なしデプロイメントでのクエリプランの実行を担当します。外部 catalog(このガイドで使用される Iceberg catalog など)が使用される場合、BE ノードは外部 catalog からデータをキャッシュしてクエリを高速化できます。 --- @@ -52,8 +52,8 @@ Docker 環境で提供される SQL クライアントを使用するか、シ | サービス | 責任 | |---------------------|--------------------------------------------------------------| -| **`starrocks-fe`** | メタデータ管理、クライアント接続、クエリ計画とスケジューリング | -| **`starrocks-be`** | クエリ計画の実行 | +| **`starrocks-fe`** | メタデータ管理、クライアント接続、クエリプランニングとスケジューリング | +| **`starrocks-be`** | クエリプランの実行 | | **`rest`** | Iceberg catalog(メタデータサービス)の提供 | | **`spark-iceberg`** | PySpark を実行するための Apache Spark 環境 | | **`mc`** | MinIO 設定(MinIO コマンドラインクライアント) | @@ -131,7 +131,7 @@ starrocks-fe 4 minutes ago Up 4 minutes (healthy) 0.0.0.0:8030->8030/tcp, ## PySpark -Iceberg と対話する方法はいくつかありますが、このガイドでは PySpark を使用します。PySpark に慣れていない場合は、詳細情報セクションからリンクされているドキュメントがありますが、実行する必要があるすべてのコマンドは以下に提供されています。 +Iceberg と接続する方法はいくつかありますが、このガイドでは PySpark を使用します。PySpark に慣れていない場合は、詳細情報セクションからリンクされているドキュメントがありますが、実行する必要があるすべてのコマンドは以下に提供されています。 ### グリーンタクシーデータセット diff --git a/docs/ja/quick_start/routine-load.md b/docs/ja/quick_start/routine-load.md index 794f43a89972d..d85bd3a3a3f41 100644 --- a/docs/ja/quick_start/routine-load.md +++ b/docs/ja/quick_start/routine-load.md @@ -3,24 +3,24 @@ description: Kafka Routine Load と共有データストレージ displayed_sidebar: docs --- -# Kafka routine load StarRocks using shared-data storage +# Kafkaから共有データクラスタにデータをロードする import Clients from '../_assets/quick-start/_clientsCompose.mdx' import SQL from '../_assets/quick-start/_SQL.mdx' -## About Routine Load +## Routine Loadについて Routine Loadは、Apache Kafka、またはこのラボではRedpandaを使用して、データをStarRocksに継続的にストリーミングする方法です。データはKafkaトピックにストリームされ、Routine LoadジョブがそのデータをStarRocksに取り込みます。Routine Loadの詳細は、ラボの最後に提供されています。 -## About shared-data +## 共有データモードについて -ストレージと計算を分離するシステムでは、データはAmazon S3、Google Cloud Storage、Azure Blob Storage、その他のS3互換ストレージ(MinIOなど)のような低コストで信頼性のある遠端ストレージシステムに保存されます。ホットデータは本地でキャッシュされ、キャッシュがヒットすると、查询性能はストレージと計算が結合されたアーキテクチャと同等になります。計算节点(CN)は、数秒以内にオンデマンドで追加または削除できます。このアーキテクチャは、ストレージコストを削減し、リソースの分離を改善し、弾力性とスケーラビリティを提供します。 +ストレージと計算を分離するアーキテクチャは、データはAmazon S3、Google Cloud Storage、Azure Blob Storage、その他のS3互換ストレージ(MinIOなど)のような低コストで信頼性のある遠端ストレージシステムに保存されます。ホットデータはローカルディスクでキャッシュされ、キャッシュがヒットすると、クエリパフォーマンスはストレージと計算が結合されたアーキテクチャと同等になります。計算节点(Compute Node, CN)は、数秒以内にオンデマンドで追加または削除できます。このアーキテクチャは、ストレージコストを削減し、リソースの分離を改善し、弾力性と拡張性を提供します。 このチュートリアルでは以下をカバーします: - Docker Composeを使用してStarRocks、Redpanda、MinIOを実行する - MinIOをStarRocksのストレージ層として使用する -- StarRocksをshared-data用に設定する +- StarRocksを共有データモード用に設定する - Redpandaからデータを取り込むためのRoutine Loadジョブを追加する 使用されるデータは合成データです。 @@ -28,20 +28,20 @@ Routine Loadは、Apache Kafka、またはこのラボではRedpandaを使用し このドキュメントには多くの情報が含まれており、最初にステップバイステップの内容が提示され、技術的な詳細が最後に示されています。これは次の目的を順に果たすためです: 1. Routine Loadを設定する。 -2. 読者がshared-dataデプロイメントでデータを导入し、そのデータを分析できるようにする。 -3. shared-dataデプロイメントの設定詳細を提供する。 +2. 共有データクラスタにデータをロードし、そのデータを分析する。 +3. 共有データデプロイメントの設定詳細を提供する。 --- -## Prerequisites +## 前提条件 ### Docker - [Docker](https://docs.docker.com/engine/install/) -- Dockerに割り当てられた4 GBのRAM -- Dockerに割り当てられた10 GBの空きディスクスペース +- Dockerに割り当てられた 4 GB のRAM +- Dockerに割り当てられた 10 GB の空きディスクスペース -### SQL client +### SQLクライアント Docker環境で提供されるSQLクライアントを使用するか、システム上のものを使用できます。多くのMySQL互換クライアントが動作し、このガイドではDBeaverとMySQL Workbenchの設定をカバーしています。 @@ -51,44 +51,44 @@ Docker環境で提供されるSQLクライアントを使用するか、シス ### Python -Python 3とApache Kafka用のPythonクライアント`kafka-python`が必要です。 +Python 3 とApache Kafka用のPythonクライアント`kafka-python`が必要です。 - [Python](https://www.python.org/) - [`kafka-python`](https://pypi.org/project/kafka-python/) --- -## Terminology +## StarRocks 用語 ### FE -フロントエンドノードは、メタデータ管理、クライアント接続管理、クエリプランニング、およびクエリスケジューリングを担当します。各FEはメモリ内にメタデータの完全なコピーを保存および維持し、FEs間での無差別なサービスを保証します。 +フロントエンドノードは、メタデータ管理、クライアント接続管理、クエリプランニング、およびクエリスケジューリングを担当します。各FEはメモリ内にメタデータの完全なコピーを保存および維持し、FE間での無差別なサービスを保証します。 ### CN -計算节点は、shared-dataデプロイメントでクエリプランを実行する役割を担います。 +計算节点は、共有データデプロイメントでクエリプランを実行する役割を担います。 ### BE -バックエンドノードは、shared-nothingデプロイメントでデータストレージとクエリプランの実行の両方を担当します。 +バックエンドノードは、共有なしデプロイメントでデータストレージとクエリプランの実行の両方を担当します。 :::note -このガイドではBEsを使用しませんが、BEsとCNsの違いを理解するためにこの情報を含めています。 +このガイドではBEを使用しませんが、BEとCNの違いを理解するためにこの情報を含めています。 ::: --- -## Launch StarRocks +## StarRocksを立ち上げる -Object Storageを使用してshared-dataでStarRocksを実行するには、以下が必要です: +オブジェクトストレージを使用して共有データでStarRocksを実行するには、以下が必要です: - フロントエンドエンジン(FE) - 計算节点(CN) -- Object Storage +- オブジェクトストレージ -このガイドでは、S3互換のObject StorageプロバイダーであるMinIOを使用します。MinIOはGNU Affero General Public Licenseの下で提供されています。 +このガイドでは、S3互換のオブジェクトストレージプロバイダーであるMinIOを使用します。MinIOはGNU Affero General Public Licenseの下で提供されています。 -### Download the lab files +### ラボファイルをダウンロード #### `docker-compose.yml` @@ -106,7 +106,7 @@ curl -O https://raw.githubusercontent.com/StarRocks/demo/master/documentation-sa curl -O https://raw.githubusercontent.com/StarRocks/demo/master/documentation-samples/routine-load-shared-data/gen.py ``` -## Start StarRocks, MinIO, and Redpanda +## StarRocks、MinIO、Redpandaをスタート ```bash docker compose up --detach --wait --wait-timeout 120 @@ -135,11 +135,11 @@ container routineload-minio_mc-1 exited (0) --- -## Examine MinIO credentials +## MinIOのクレデンシャルを確認 -StarRocksでObject StorageとしてMinIOを使用するためには、StarRocksがMinIOアクセスキーを必要とします。アクセスキーはDockerサービスの起動時に生成されました。StarRocksがMinIOに接続する方法をよりよく理解するために、キーが存在することを確認してください。 +StarRocksでオブジェクトストレージとしてMinIOを使用するためには、StarRocksがMinIOアクセスキーを必要とします。アクセスキーはDockerサービスの起動時に生成されました。StarRocksがMinIOに接続する方法をよりよく理解するために、キーが存在することを確認してください。 -### Open the MinIO web UI +### MinIOのWeb UIを起動 http://localhost:9001/access-keys にアクセスします。ユーザー名とパスワードはDocker composeファイルに指定されており、`miniouser`と`miniopassword`です。1つのアクセスキーがあることが確認できるはずです。キーは`AAAAAAAAAAAAAAAAAAAA`で、MinIOコンソールではシークレットは表示されませんが、Docker composeファイルにあり、`BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB`です: @@ -147,39 +147,37 @@ http://localhost:9001/access-keys にアクセスします。ユーザー名と --- -## SQL Clients +## SQLクライアント --- -## StarRocks configuration for shared-data +## 共有データクラスタの設定 -この時点で、StarRocks、Redpanda、およびMinIOが実行されています。MinIOアクセスキーはStarRocksとMinioを接続するために使用されます。StarRocksが起動すると、MinIOとの接続が確立され、MinIOにデフォルトの存储卷が作成されました。 +この時点で、StarRocks、Redpanda、およびMinIOが実行されています。MinIOアクセスキーはStarRocksとMinioを接続するために使用されます。StarRocksが起動すると、MinIOとの接続が確立され、MinIOにデフォルトのストレージボリュームが作成されました。 -これは、MinIOを使用するためにデフォルトの存储卷を設定するために使用される設定です(これもDocker composeファイルにあります)。設定はこのガイドの最後で詳細に説明されますが、今は`aws_s3_access_key`がMinIOコンソールで見た文字列に設定されていることと、`run_mode`が`shared_data`に設定されていることに注意してください。 +これは、MinIOを使用するためにデフォルトのストレージボリュームを設定するために使用される設定です(これもDocker composeファイルにあります)。設定はこのガイドの最後で詳細に説明されますが、今は`aws_s3_access_key`がMinIOコンソールで見た文字列に設定されていることと、`run_mode`が`shared_data`に設定されていることに注意してください。 ```plaintext #highlight-start -# enable shared data, set storage type, set endpoint +# 共有データ、ストレージタイプ、エンドポイントを設定 run_mode = shared_data #highlight-end cloud_native_storage_type = S3 aws_s3_endpoint = minio:9000 -# set the path in MinIO +# minIOのパスを設定 aws_s3_path = starrocks #highlight-start -# credentials for MinIO object read/write +# MinIOオブジェクトの読み書きに関するクレデンシャル aws_s3_access_key = AAAAAAAAAAAAAAAAAAAA aws_s3_secret_key = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB #highlight-end aws_s3_use_instance_profile = false aws_s3_use_aws_sdk_default_behavior = false -# Set this to false if you do not want default -# storage created in the object storage using -# the details provided above +# オブジェクト=ストレージにデフォルトストレージを作成したくない場合は、falseに設定する。 enable_load_volume_from_conf = true ``` @@ -195,7 +193,7 @@ docker compose exec starrocks-fe cat fe/conf/fe.conf ::: -### Connect to StarRocks with a SQL client +### SQLクライアントで StarRocks に接続 :::tip @@ -209,7 +207,7 @@ docker compose exec starrocks-fe \ mysql -P9030 -h127.0.0.1 -uroot --prompt="StarRocks > " ``` -#### Examine the storage volume +#### ストレージボリュームを確認 ```sql SHOW STORAGE VOLUMES; @@ -256,7 +254,7 @@ IsDefault: true --- -## Create a table +## テーブルを作る これらのSQLコマンドはSQLクライアントで実行されます。 @@ -280,13 +278,13 @@ PROPERTIES("replication_num"="1"); --- -### Open the Redpanda Console +### Redpandaコンソールを開く まだトピックはありませんが、次のステップでトピックが作成されます。 http://localhost:8080/overview -### Publish data to a Redpanda topic +### Redpandaトピックにデータを公開 `routineload/`フォルダのコマンドシェルからこのコマンドを実行してデータを生成します: @@ -298,7 +296,7 @@ python gen.py 5 システムによっては、コマンドで`python`の代わりに`python3`を使用する必要があるかもしれません。 -`kafka-python`が不足している場合は、次を試してください: +`kafka-python`がない場合は、次を試してください: ``` pip install kafka-python @@ -319,11 +317,11 @@ b'{ "uid": 7273, "site": "https://docs.starrocks.io/", "vtime": 1718034794 } ' b'{ "uid": 4666, "site": "https://www.starrocks.io/", "vtime": 1718034794 } ' ``` -### Verify in the Redpanda Console +### Redpandaコンソールで確認 -Redpandaコンソールでhttp://localhost:8080/topics に移動すると、`test2`という名前のトピックが1つ表示されます。そのトピックを選択し、**Messages**タブを選択すると、`gen.py`の出力に一致する5つのメッセージが表示されます。 +Redpandaコンソールで http://localhost:8080/topics に移動すると、`test2`という名前のトピックが1つ表示されます。そのトピックを選択し、**Messages**タブを選択すると、`gen.py`の出力に一致する5つのメッセージが表示されます。 -## Consume the messages +## メッセージを消費 StarRocksでは、Routine Loadジョブを作成して以下を行います: @@ -332,7 +330,7 @@ StarRocksでは、Routine Loadジョブを作成して以下を行います: StarRocksはMinIOをストレージとして使用するように設定されているため、`site_clicks`テーブルに挿入されたデータはMinIOに保存されます。 -### Create a Routine Load job +### Routine Loadジョブを作る SQLクライアントでこのコマンドを実行してRoutine Loadジョブを作成します。このコマンドはラボの最後で詳細に説明されます。 @@ -352,7 +350,7 @@ FROM KAFKA ); ``` -### Verify the Routine Load job +### Routine Loadジョブを確認 ```SQL SHOW ROUTINE LOAD\G @@ -427,13 +425,13 @@ LatestSourcePosition: {"0":"5"} --- -## Verify that data is stored in MinIO +## データがMinIOに保存されていることを確認 MinIOを開き、`starrocks`の下にオブジェクトが保存されていることを確認します。 --- -## Query the data from StarRocks +## StarRocksからデータをクエリ ```SQL USE quickstart; @@ -453,7 +451,7 @@ SELECT * FROM site_clicks; 5 rows in set (0.07 sec) ``` -## Publish additional data +## 追加データを公開 `gen.py`を再度実行すると、Redpandaにさらに5つのレコードが公開されます。 @@ -461,15 +459,15 @@ SELECT * FROM site_clicks; python gen.py 5 ``` -### Verify that data is added +### データが追加されていることを確認 Routine Loadジョブはスケジュールに基づいて実行されるため(デフォルトでは10秒ごと)、データは数秒以内にロードされます。 ```SQL SELECT * FROM site_clicks; -```` - ``` + +```Plaintext +------+--------------------------------------------+------------+ | uid | site | vtime | +------+--------------------------------------------+------------+ @@ -489,18 +487,18 @@ SELECT * FROM site_clicks; --- -## Configuration details +## 設定の詳細 -StarRocksをshared-dataで使用する経験を積んだ今、設定を理解することが重要です。 +StarRocksを共有データモードで使用する経験を積んだ今、設定を理解することが重要です。 -### CN configuration +### CNの設定 -ここで使用されているCNの設定はデフォルトです。CNはshared-dataの使用を目的として設計されています。デフォルトの設定は以下の通りです。変更を加える必要はありません。 +ここで使用されているCNの設定はデフォルトです。CNは共有データモードの使用を目的として設計されています。デフォルトの設定は以下の通りです。変更を加える必要はありません。 ```bash sys_log_level = INFO -# ports for admin, web, heartbeat service +# 管理、ウェブ、ハートビートサービス用ポート be_port = 9060 be_http_port = 8040 heartbeat_service_port = 9050 @@ -508,35 +506,33 @@ brpc_port = 8060 starlet_port = 9070 ``` -### FE configuration +### FEの設定 -FEの設定は、デフォルトとは少し異なります。FEはデータがBEノードの本地ディスクではなく、Object Storageに保存されることを期待するように設定されなければなりません。 +FEの設定は、デフォルトとは少し異なります。FEはデータがBEノードの本地ディスクではなく、オブジェクトストレージに保存されることを期待するように設定されなければなりません。 `docker-compose.yml`ファイルは、`starrocks-fe`サービスの`command`セクションでFEの設定を生成します。 ```plaintext -# enable shared data, set storage type, set endpoint +# 共有データ、ストレージタイプ、エンドポイントを設定 run_mode = shared_data cloud_native_storage_type = S3 aws_s3_endpoint = minio:9000 -# set the path in MinIO +# minIOのパスを設定 aws_s3_path = starrocks -# credentials for MinIO object read/write +# MinIOオブジェクトの読み書きに関するクレデンシャル aws_s3_access_key = AAAAAAAAAAAAAAAAAAAA aws_s3_secret_key = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB aws_s3_use_instance_profile = false aws_s3_use_aws_sdk_default_behavior = false -# Set this to false if you do not want default -# storage created in the object storage using -# the details provided above +# オブジェクト=ストレージにデフォルトストレージを作成したくない場合は、falseに設定する。 enable_load_volume_from_conf = true ``` :::note -この設定ファイルにはFEのデフォルトエントリは含まれておらず、shared-dataの設定のみが示されています。 +この設定ファイルにはFEのデフォルトエントリは含まれておらず、共有データモードの設定のみが示されています。 ::: デフォルトではないFEの設定: @@ -547,7 +543,7 @@ enable_load_volume_from_conf = true #### `run_mode=shared_data` -これはshared-dataの使用を有効にします。 +これは共有データモードの使用を有効にします。 #### `cloud_native_storage_type=S3` @@ -579,11 +575,11 @@ MinIOを使用する場合、このパラメータは常にfalseに設定され #### `enable_load_volume_from_conf=true` -これがtrueの場合、MinIOオブジェクトストレージを使用して`builtin_storage_volume`という名前のStarRocks存储卷が作成され、作成するテーブルのデフォルトの存储卷として設定されます。 +これがtrueに設定されている場合、MinIOオブジェクトストレージを使用して`builtin_storage_volume`という名前のStarRocksストレージボリュームが作成され、作成するテーブルのデフォルトのストレージボリュームとして設定されます。 --- -## Notes on the Routine Load command +## Routine Loadコマンドに関する注意事項 StarRocks Routine Loadは多くの引数を取ります。このチュートリアルで使用されているものだけがここで説明され、残りは詳細情報セクションでリンクされます。 @@ -603,7 +599,7 @@ FROM KAFKA ); ``` -### Parameters +### パラメータ ``` CREATE ROUTINE LOAD quickstart.clicks ON site_clicks @@ -613,15 +609,15 @@ CREATE ROUTINE LOAD quickstart.clicks ON site_clicks - database_name.job_name - table_name -`database_name`はオプションです。このラボでは`quickstart`で指定されています。 +`database_name.`はオプションです。このラボでは`quickstart`で指定されています。 `job_name`は必須で、`clicks`です。 `table_name`は必須で、`site_clicks`です。 -### Job properties +### ジョブのプロパティ -#### Property `format` +#### `format` ``` "format" = "JSON", @@ -629,13 +625,13 @@ CREATE ROUTINE LOAD quickstart.clicks ON site_clicks この場合、データはJSON形式であるため、プロパティは`JSON`に設定されています。他の有効な形式は:`CSV`、`JSON`、および`Avro`です。`CSV`がデフォルトです。 -#### Property `jsonpaths` +#### `jsonpaths` ``` "jsonpaths" ="[\"$.uid\",\"$.site\",\"$.vtime\"]" ``` -JSON形式のデータからロードしたいフィールドの名前。このパラメータの値は有効なJsonPath式です。詳細情報はこのページの最後にあります。 +JSON形式のデータからロードしたいフィールドの名前。このプロパティの値は有効なJsonPath式です。詳細情報はこのページの最後にあります。 ### Data source properties @@ -670,17 +666,17 @@ Kafkaのブローカー接続情報。形式は`: