java实时数仓项目

访问的时候 

这是因为properties中配置的是 本地 的localhost 

因为这里面请求地址是applog

 

 

发送到kafka的properties

 

添加一个logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="LOG_HOME" value="d:/logs" />
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

    <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/app.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/app.%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%msg%n</pattern>a
        </encoder>
    </appender>


    <!-- 将某一个包下日志单独打印日志 -->
    <logger name="com.jsf.gmall.controller.LoggerController.java"
            level="INFO" additivity="false">
        <appender-ref ref="rollingFile" />
        <appender-ref ref="console" />
    </logger>

    <root level="error" additivity="false">
        <appender-ref ref="console" />
    </root>
</configuration>

导入一个lombok下的 

设置日志级别  (info ,和 warn  级别)

 

 

### 轻量级实时数仓的技术架构分析 #### 使用 Apache Doris 和 Apache Flink 构建实时数仓 Apache Doris 是一种高效的分布式数据分析引擎,能够快速处理大规模数据集并支持多种查询场景。通过与 Apache Flink 集成,可以构建一个轻量级的实时数仓系统。Flink 提供强大的流式计算能力,而 Doris 则负责高效的数据存储和查询响应[^1]。 ```sql -- 创建外部表连接到 Flink 数据源 CREATE EXTERNAL TABLE flink_table ( id BIGINT, event_time TIMESTAMP, value DOUBLE ) ENGINE=FLINK OPTIONS ('connector'='kafka', 'topic'='events'); -- 将实时数据加载至 Doris 表中 INSERT INTO doris_table SELECT * FROM flink_table; ``` 上述代码展示了如何将来自 Kafka 的实时事件数据通过 Flink 处理后导入到 Doris 中进行进一步分析。 --- #### 数据湖技术选型:Hudi vs Iceberg 对于轻量级实时数仓而言,选择合适的数据湖框架至关重要。以下是两种主流方案的特点: - **Hudi** Hudi 基于日志结构化设计,提供了写时复制 (Copy-On-Write, COW) 和追加即时可用 (Merge-On-Read, MOR) 两种模式来优化性能。其核心优势在于支持增量更新、删除以及时间旅行功能,非常适合需要频繁修改历史数据的应用场景[^3]。 - **Iceberg** Iceberg 更注重元数据管理,采用分层文件组织方式,并引入了独立的 Schema 定义机制。尽管它的配置相对复杂一些,但在多团队协作环境下表现出色,因为所有的变更都可通过版本控制追踪[^4]。 两者均能很好地配合 Flink 或 Spark 进行流批一体化处理,但从易用性角度来看 Delta Lake 可能更胜一筹;不过考虑到资源消耗及长期维护成本,则需综合评估具体需求后再决定选用哪款工具作为底层支撑平台[^2]^. --- #### 对比 Flink 和 Spark 在实时数仓中的角色定位 虽然二者都能胜任大数据环境下的任务调度工作,但它们各自擅长的方向略有差异: - **Flink**: 主打低延迟特性,在线业务监控预警类应用尤为适用; - **Spark Structured Streaming**: 功能全面且成熟稳定,适合离线报表生成或者较复杂的ETL流程改造项目。 因此当追求极致速度反馈效果的时候倾向于前者;而对于那些希望兼顾灵活性又能保持一定开发效率的企业来说后者或许是个不错的选择。 --- ### 总结推荐 如果目标是搭建一套既满足高并发访问又具备较强扩展潜力的小规模生产级别解决方案的话,那么由 `Flink` 承担前端逻辑运算部分再加上后台依托於 `Doris` 来完成最终呈现环节无疑是一个明智之举 。与此同时 ,针对特定领域内的特殊要求还可以适当加入像 `Hudi/Iceberg`这样的组件增强整体系统的健壮程度 。 ```bash # 启动 Flink Job 并持续向下游推送结果 flink run -c com.example.FlinkToDorisJob /path/to/jarfile.jar --config config.properties & ``` 以上脚本可用于启动一个预编译好的 Java/Scala 应用程序实例,该应用程序实现了从源头摄取资料直至将其持久保存进目的端整个链条上的各个环节操作自动化执行过程。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值