TYC数据开发能力试卷(数据开发工程师)
一、单选题
- 关于Kafka的分区机制,下列说法正确的是?
A. 同一个分区内的消息是无序的
B. 分区数可以在运行时动态减少
C. 同一个消费者组内,一个分区只能被一个消费者消费
D. 分区的副本数必须等于Broker数量 - 在Hive中,以下哪种文件格式支持列式存储和压缩?
A. TextFile
B. SequenceFile
C. Parquet
D. JsonFile - Flink实现Exactly-Once语义,必须满足的条件不包括?
A. Source支持数据重放
B. Sink支持幂等写入或事务写入
C. 启用Checkpoint机制
D. 必须使用RocksDB作为状态后端 - 数据仓库分层中,ODS层的主要作用是?
A. 存储清洗后的明细数据
B. 存储聚合后的汇总数据
C. 存储原始数据,保持与源系统一致
D. 直接对外提供查询服务 - Spark中,以下哪个操作会触发真正的计算(Action操作)?
A. map()
B. filter()
C. groupByKey()
D. count() - Flink的窗口计算中,Event Time + Watermark机制主要解决什么问题?
A. 提高计算性能
B. 处理乱序数据和延迟数据
C. 减少内存占用
D. 简化编程模型 - MySQL中,以下哪个索引类型查询效率最高(假设数据分布均匀)?
A. 主键索引
B. 唯一索引
C. 普通索引
D. 全文索引 - Kafka的消费者组(Consumer Group)机制的主要优势是?
A. 提高消息写入速度
B. 实现消息的负载均衡消费
C. 减少磁盘占用
D. 保证消息全局有序 - 在数据湖架构中,Apache Iceberg相比传统Hive表的核心优势是?
A. 查询速度更快
B. 支持ACID事务和Schema演进
C. 占用存储空间更小
D. 只支持批处理 - Hive动态分区插入时,以下哪个参数用于控制最大动态分区数?
A. hive.exec.max.dynamic.partitions
B. hive.exec.dynamic.partition.mode
C. hive.exec.max.created.files
D. hive.exec.parallel
二、多选题
- 关于Flink的状态管理,以下说法正确的是?
A. 状态只能存储在内存中
B. Flink支持Keyed State和Operator State两种状态类型
C. RocksDB状态后端不支持增量Checkpoint
D. 状态数据会随着Checkpoint持久化到外部存储 - Spark SQL优化中,以下哪些操作可以有效提升查询性能?
A. 对所有字段都建立索引
B. 禁用所有缓存机制
C. 使用广播变量处理小表Join
D. 增加Shuffle分区数避免数据倾斜 - 数据仓库建设中,DWD层(明细数据层)的特点包括?
A. 直接存储业务系统原始数据
B. 保留历史数据变化
C. 数据已经过清洗和标准化
D. 主要用于BI报表展示 - Kafka实现高吞吐的关键技术包括?(选择两项)
A. 使用关系型数据库存储消息
B. 顺序写磁盘和Page Cache机制
C. 零拷贝(Zero-Copy)技术
D. 每条消息都立即刷盘 - 在实时数据质量监控中,以下哪些指标是核心关注点?
A. 服务器CPU使用率
B. 开发人员数量
C. 数据完整性(是否有数据丢失)
D. 数据时效性(延迟时间) - Flink的反压(Backpressure)机制中,以下说法正确的是?
A. 反压会导致数据丢失
B. 反压只影响Source算子
C. 反压会从下游算子传导到上游算子
D. 反压通过TCP的滑动窗口机制实现流量控制 - MySQL索引优化中,以下哪些情况会导致索引失效?
A. 使用主键查询
B. 在WHERE条件中对索引列使用函数
C. 查询条件完全匹配索引列
D. 使用!=或<>操作符 - Hive表的存储格式选择中,以下说法正确的是?
A. TextFile格式压缩比最高
B. ORC格式支持ACID事务
C. SequenceFile不支持压缩
D. Parquet格式更适合列式查询场景 - Delta Lake相比传统数据湖的优势包括?
A. 完全不需要元数据管理
B. 支持ACID事务保证数据一致性
C. 只能在Spark中使用
D. 提供Time Travel功能查询历史版本 - Flink窗口类型中,以下说法正确的是?
A. Session Window(会话窗口)窗口大小固定
B. Tumbling Window(滚动窗口)窗口之间无重叠
C. Sliding Window(滑动窗口)可以设置滑动步长
D. 所有窗口类型都必须指定固定时间长度
答案及解析
一、单选题
- C
解析:Kafka同一个分区内消息有序;分区数仅能增加不能动态减少;副本数可配置,无需等于Broker数;消费者组内一个分区仅被一个消费者消费。 - C
解析:Parquet是列式存储格式且支持压缩;TextFile、JsonFile为行式存储;SequenceFile是二进制键值对存储,非纯列式。 - D
解析:Flink实现Exactly-Once需Source支持重放、Sink支持幂等/事务写入、启用Checkpoint,状态后端不强制使用RocksDB。 - C
解析:ODS层存储原始数据,与源系统保持一致;DWD层存储清洗后的明细数据,DWS层存储聚合数据。 - D
解析:Spark中map、filter、groupByKey是懒执行的Transformation操作,count是Action操作,会触发实际计算。 - B
解析:Event Time为事件产生时间,Watermark用于判定乱序和延迟数据的窗口关闭时机,核心解决乱序与延迟问题。 - A
解析:主键索引为聚簇索引,数据物理存储与索引有序,查询效率最高;唯一索引、普通索引、全文索引查询效率依次降低。 - B
解析:消费者组通过分区分配实现消息的负载均衡消费;不影响消息写入速度,也无法保证消息全局有序。 - B
解析:Apache Iceberg支持ACID事务、Schema演进,是对比传统Hive表的核心优势;也支持流批处理,查询速度并非核心差异。 - A
解析: hive.exec.max.dynamic.partitions 用于控制最大动态分区数;B是动态分区模式,C是最大创建文件数,D是并行执行开关。
二、多选题
- BD
解析:Flink状态可存储在内存、RocksDB等介质;支持Keyed State和Operator State两种类型;RocksDB支持增量Checkpoint;Checkpoint会将状态持久化到外部存储。 - CD
解析:广播变量可减少小表Join的Shuffle开销,增加Shuffle分区数能避免数据倾斜;给所有字段建索引会增加开销,禁用缓存会降低重复查询性能。 - BC
解析:DWD层数据经过清洗和标准化,且保留历史变化;ODS层存储原始数据,ADS层用于BI报表展示。 - BC
解析:Kafka高吞吐源于顺序写磁盘、Page Cache缓存和零拷贝技术;采用文件存储而非关系型数据库,消息也并非立即刷盘。 - CD
解析:实时数据质量核心关注完整性、时效性等数据本身指标;CPU使用率是资源监控指标,开发人员数量与数据质量无关。 - CD
解析:Flink反压不会导致数据丢失,会从下游算子向上游传导,通过TCP滑动窗口实现流量控制。 - BD
解析:对索引列使用函数、使用!=/<>操作符会导致索引失效;主键查询、完全匹配索引列会正常走索引。 - BD
解析:ORC格式支持ACID事务(Hive 3.0+);Parquet适配列式查询场景;TextFile压缩比低,SequenceFile支持压缩。 - BD
解析:Delta Lake支持ACID事务和Time Travel功能;需要元数据管理,也可在Flink等引擎中使用,并非仅支持Spark。 - BC
解析:滚动窗口无重叠,滑动窗口可设置滑动步长;会话窗口无固定大小,由超时时间决定,并非所有窗口都需指定固定时间长度。
5388

被折叠的 条评论
为什么被折叠?



