活动介绍
file-type

Apache Doris存储层向量化改造的技术实践

版权申诉

ZIP文件

507KB | 更新于2024-11-20 | 15 浏览量 | 0 下载量 举报 收藏
download 限时特惠:#14.90
Apache Doris是一个开源的MPP(Massively Parallel Processing)数据分析引擎,特别适用于在线分析处理(OLAP)场景,它能够支持高并发的实时数据分析。该文件的标题指出了它关注的是Apache Doris存储层的向量化改造。 ### 知识点一:大数据存储 在大数据存储领域,需要考虑的关键因素包括数据的存储效率、扩展性、容错性和访问速度。由于数据量巨大,传统的单机存储方式无法满足需求,因此必须采用分布式存储系统。Apache Doris正是这样一种分布式系统,它能够在多台服务器上分布式存储数据,并保证数据的高可用性和高性能。 ### 知识点二:数据分层实践 数据分层是大数据处理中的一种常见实践,它将数据按照不同的层次和用途进行分类存储。例如,可以将数据分为热数据层、温数据层和冷数据层。热数据层通常存储最近最常访问的数据,以便快速读取;温数据层存储稍老但仍然有一定访问频率的数据;冷数据层则存储历史数据,访问频率较低。这种分层管理方式有助于优化存储成本和提高数据访问效率。 ### 知识点三:Apache Doris存储层改造 文件标题中提到的“向量化改造”可能指的是对Apache Doris存储层的优化,使其在处理数据时使用向量化技术。向量化处理是一种利用CPU的SIMD(Single Instruction, Multiple Data)指令集,通过并行处理数据来提升计算性能的方法。在数据仓库系统中应用向量化技术能够显著减少查询处理时间,提升整体系统性能。 ### 知识点四:设计与实现 文档中提到的设计与实现,通常包括系统架构的设计、算法的选取与优化、代码编写、单元测试以及最终的部署上线。在对Apache Doris存储层进行向量化改造的过程中,设计阶段需要考虑如何最小化改动现有架构,保证改造后的系统与原有系统兼容,同时实现性能的提升。实现阶段则涉及具体的编码工作,以及各种性能测试,确保改造效果达到预期目标。 ### 知识点五:Apache Doris的使用场景 Apache Doris适用于需要快速查询、高并发和实时分析的业务场景。例如,它适合用于互联网公司的用户行为分析、日志分析、流量分析、商业智能(BI)报表等。由于其支持实时分析的特点,对于需要快速响应的业务场景,如金融行业的交易分析、实时风控,也有着很好的适用性。 ### 知识点六:向量化查询优化 向量化查询优化是通过改进查询引擎的执行计划,采用向量化的方式来处理数据,加快数据处理速度。在Apache Doris中,这样的优化可能涉及到查询计划的生成、算子优化、内存管理和向量级数据处理等多个方面。 ### 知识点七:性能评估与调优 系统性能评估与调优是保证数据仓库系统稳定运行的重要环节。在完成向量化改造后,需要对系统性能进行详细评估,包括查询响应时间、系统吞吐量、资源利用率等指标。通过测试数据来确定优化效果,并根据测试结果进一步调整系统配置或代码,达到最佳性能。 通过这份文档,我们可以了解到关于大数据存储、数据分层、Apache Doris存储层向量化改造以及系统设计与实现等核心概念和实践方法。这不仅有助于理解Apache Doris这一大数据分析引擎的工作原理和优化技术,也为实际的大数据分析和存储系统的建设提供了宝贵的参考。

相关推荐

filetype

2025-03-18 10:37:46,425 WARN (Thread-55|96) [InternalSchemaInitializer.run():75] Statistics storage initiated failed, will try again later org.apache.doris.common.DdlException: errCode = 2, detailMessage = System has no available disk capacity or no available BE nodes at org.apache.doris.system.SystemInfoService.checkAvailableCapacity(SystemInfoService.java:785) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.datasource.InternalCatalog.createTable(InternalCatalog.java:1132) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.catalog.InternalSchemaInitializer.createTbl(InternalSchemaInitializer.java:128) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.catalog.InternalSchemaInitializer.run(InternalSchemaInitializer.java:73) ~[doris-fe.jar:1.2-SNAPSHOT] 2025-03-18 10:37:51,425 INFO (Thread-55|96) [InternalCatalog.createDb():430] create database[default_cluster:__internal_schema] which already exists 2025-03-18 10:37:51,429 WARN (Thread-55|96) [InternalSchemaInitializer.run():75] Statistics storage initiated failed, will try again later org.apache.doris.common.DdlException: errCode = 2, detailMessage = System has no available disk capacity or no available BE nodes at org.apache.doris.system.SystemInfoService.checkAvailableCapacity(SystemInfoService.java:785) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.datasource.InternalCatalog.createTable(InternalCatalog.java:1132) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.catalog.InternalSchemaInitializer.createTbl(InternalSchemaInitializer.java:128) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.catalog.InternalSchemaInitializer.run(InternalSchemaInitializer.java:73) ~[doris-fe.jar:1.2-SNAPSHOT] 什么原因怎么解决

filetype

./bin/flink run -d -t yarn-per-job \ -Dyarn.application.name="flinkcdc_prod_old_smpcdb_3" \ -Dyarn.application.queue="hive" \ -Dstate.backend=rocksdb \ -Dstate.externalize-checkpoints=true \ -Dexecution.checkpointing.externalized-checkpoint-retention=RETAIN_ON_CANCELLATION \ -Dexecution.checkpointing.interval=180s \ -Dexecution.checkpointing.timeout=7200s \ -Dexecution.checkpointing.min-pause=60s \ -Dexecution.checkpointing.max-concurrent-checkpoints=1 \ -Dstate.checkpoints.dir=hdfs://hadoop102:8020/flink_ck/offline/prod_old_smpcdb \ --allowNonRestoredState \ -Dparallelism.default=4 \ -Djobmanager.memory.process.size=2048m \ -Dtaskmanager.memory.process.size=5120m \ -Dtaskmanager.numberOfTaskSlots=2 \ -c org.apache.doris.flink.tools.cdc.CdcTools \ /opt/module/flink-1.17.2-sql-cdc/lib/flink-doris-connector-1.17-1.6.2.jar \ oracle-sync-database \ --database prod_old_smpcdb \ --oracle-conf hostname=10.1.9.2 \ --oracle-conf port=1521 \ --oracle-conf database-name=PMS2 \ --oracle-conf username=pms \ --oracle-conf password="SRX3yak#8" \ --oracle-conf schema-name=PMS \ --oracle-conf debezium.database.history.store.only.captured.tables.ddl=true \ --oracle-conf debezium.log.miner.enabled=false \ --oracle-conf debezium.snapshot.mode=initial_only \ --oracle-conf debezium.snapshot.fetch.size=20000 \ --oracle-conf debezium.column.mapping="CLOB:STRING,BLOB:STRING" \ --oracle-conf debezium.snapshot.checkpoint.interval.ms=0 \ --oracle-conf debezium.transforms=encodeBlob \ --oracle-conf debezium.transforms.encodeBlob.format=base64 \ --oracle-conf debezium.database.url="jdbc:oracle:thin:@//10.1.9.2:1521/PMS" \ --including-tables "EXP_PHOTO" \ --sink-conf fenodes=10.210.31.92:18030 \ --sink-conf username=root \ --sink-conf password=zjj000000 \ --sink-conf jdbc-url=jdbc:mysql://10.210.31.92:9030 \ --sink.buffer-size=100M \ --sink.buffer-flush.interval=60000 \ --sink-conf sink.enable-2pc=false \ --sink-conf sink.label-prefix=label_cdc_prod_old_smpcdb_340 \ --sink-conf sink.stream-load.timeout=7200 \ --sink-conf sink.connect.timeout.ms=60000 \ --sink-conf sink.request.timeout.ms=3600000 \ --table-conf replication_num=1 目前是flink doris connetct 来采集表中大字段