Doris的数据导入机制以及原子性保证
LABEL 导入任务 的标识 查看对应 导入任务 的执行情 况 用户可以 自定义 防止用户 重复导入 同一批次 数据使用 相同的label Label • 为了保证At-Most-Once 语意, 用户同一批次数据需要使用相同的Label 03 Doris 中的导入 Prepared 事务和两阶段提交 • FE 充当协调者 • Prepare 阶段下发任务和写入数据 • Done Coordinator Participant Prepare Phase Commit Phase Prepare Txn • 创建事务 • 规划导入执行计划 • 分发子任务 03 Doris 中的导入 FE Leader Analyzer FE Follower 数据版本 N 事务状态 PREPARE 事务管理 1.Begin Txn Phase 1 FE Follower 2. Load 数据 数据版本 N 事务状态 PREPARE 事务管理 1.Begin Txn 3.汇报导入 Phase 1 Publish • 收集导入任务汇报结果 • 发送Publish 消息 • 事务状态改为 COMMITED • 等待BE 返回 03 Doris 中的导入 BE 未生效数据 生效数据 FE Leader V1 V20 码力 | 33 页 | 21.95 MB | 1 年前3SelectDB案例 从 ClickHouse 到 Apache Doris
语义层作为架构中枢节点所带来的变化: 数仓层:语义层接收 SQL 触发计算或查询任务。数仓从 DWD 到 DWS 的计算逻 辑将在语义层中进行定义,且以单个指标和标签的形式进行定义,之后由语义层来 发送命令,生成 SQL 命令给数仓层执行计算。 加速层:从语义层接收配置、触发导入任务,比如加速哪些指标与标签均由语义层 指导。 应用层:向语义层发起逻辑查询,由语义层选择引擎,生成物理 和指标的分析。从业务的角度,需要满足以下要求: 实时可用:标签/指标导入以后,需实现数据尽快可用。不仅要支持常规离线导入 T+1 ,同时也要支持实时打标场景。 部分更新:因每个 Source 表由各自 ETL 任务产出对应的数据,其产出时间不一致, 并且每个表只涉及部分指标或标签,不同数据查询对时效性要求也不同,因此架构 需要支持部分列更新。 性能高效:具备高效的写入能力,且在圈选、洞察、报表等场景可以实现秒级响应。 中消费数据写入到不同 Doris 表中的功能,并且可以根据数据的大小 自动调整写入的批次,尽量做到攒批低频写入。 Doris 写入调优:针对- 235 报错进行相关参数的调优。比如设置合理的分区和分桶 (Tablet 建议 1-10G),同时结合场景对 Compaction 参数调优: max_XXXX_compaction_thread max_cumulative_compaction_num_singleton_deltas0 码力 | 12 页 | 1.55 MB | 1 年前3百度智能云 Apache Doris 文档
true true INSERT INSERT VALUES VALUES Baidu 百度智能云文档 SQL手册 14 例行导入(Routine Load)功能,支持用户提交一个常驻的导入任务,通过不断的从指定的数据源读取数据,将数据导入到 Doris 中。 目前仅支持通过无认证或者 SSL 认证方式,从 Kakfa 导入 CSV 或 Json 格式的数据。 语法: 导入作业的名称,在同一个 期望的并发度。一个例行导入作业会被分成多个子任务执行。这个参数指定一个作业最多有多少任务可以同时执行。 必须大于0。默认为3。 这个并发度并不是实际的并发度,实际的并发度,会通过集群的节点数、负载情况,以及数据源的情况综合考虑。 2. 这三个参数分别表示: 1. 每个子任务最大执行时间,单位是秒。范围为 5 到 60。默认为10。 2. 每个子任务最多读取的行数。必须大于等于200000。默认是200000。 。默认是200000。 3. 每个子任务最多读取的字节数。单位是字节,范围是 100MB 到 1GB。默认是 100MB。 这三个参数,用于控制一个子任务的执行时间和处理量。当任意一个达到阈值,则任务结束。 3. 采样窗口内,允许的最大错误行数。必须大于等于0。默认是 0,即不允许有错误行。 采样窗口为 。即如果在采样窗口内,错误行数大于 ,则会导致例行作业被 暂停,需要人工介入检查数据质量问题。0 码力 | 203 页 | 1.75 MB | 1 年前3
共 3 条
- 1