Git Product home page Git Product logo

flink-training-course's Introduction

课程简介:

本系列课程由 Apache Flink Community China 官方出品。旨在为具备一定大数据基础、对 Apache Flink 感兴趣的同学提供系统性的入门教程,课程分为 基础篇、进阶篇、运维篇、实时数仓篇等,持续更新。

S3 社区公开课课表(进行中)

< 备注:S1 S2 基础篇+进阶篇本页下滑可见 > Flink中文学习网站地址:https://ververica.cn/developers/flink-training-course3/

即将直播

【实时数仓篇】利用 Flink 进行实时作业运行监控

讲师:李明(美团点评)
直播:7月2日 20:00-21:00 (UTC+8)
备注:视频、PPT待直播后更新 

【技术生态篇】Flink JDBC Connector

讲师:徐榜江(Apache Flink Contributor,阿里巴巴高级开发工程师)
直播:7月23日 20:00-21:00 (UTC+8)
备注:视频、PPT待直播后更新 

计划直播

Flink 1.11 – 双 RM 带你抢先看

 讲师:王治江(淘江)(Flink 1.11 Release Manager,阿里巴巴高级技术专家)
 直播:时间待定  20:00-21:00 (UTC+8)
备注:视频、PPT待直播后更新 

【实时数仓篇】从零到一搭建实时数仓

讲师:张荣(蓉荣)(阿里巴巴产品专家)
 直播:时间待定 20:00-21:00 (UTC+8)
 备注:视频、PPT待直播后更新 

【实时数仓篇】构建你的流批一体数仓:Flink file system connector 实践

直播:时间待定  20:00-21:00 (UTC+8)
备注:视频、PPT待直播后更新 

【实时数仓篇】构建你的流批一体数仓:Flink on Hive 流批一体实践

直播:时间待定  20:00-21:00 (UTC+8)
备注:视频、PPT待直播后更新 

【实时数仓篇】利用 Flink 更高效的实现代码优化

讲师:程硕(阿里巴巴开发工程师)
直播:时间待定  20:00-21:00 (UTC+8)
备注:视频、PPT待直播后更新 

——————————————————————##直播回放##———————————————————————

【极客挑战赛】 如何利用 Flink 和深度学习模型实现垃圾图片分类(Apache Flink 极客特别场)

讲师:陈戊超(阿里巴巴技术专家)

视频回放

—————————————————————————————————————————————————————————

【实时数仓】1. Flink 实时数仓的应用

PPT

视频回放

  讲师:黄伟伦(美团实时数仓技术专家)

【实时数仓】2. 利用 Flink 实现典型的实时 ETL 场景

PPT

视频回放

 讲师:买蓉(美团点评)

【实时数仓】 3. 利用 Flink 实现实时超时统计场景

PPT

视频回放

讲师:马汶园(菜鸟 数据工程师)

【实时数仓】4. 利用 Flink 实现实时状态复用场景

PPT

视频回放

讲师:李晨(菜鸟 数据工程师)

【实时数仓】5. Flink 窗口函数的应用场景

PPT

视频回放

讲师:张俊(Apache Flink Contributor,OPPO大数据平台研发负责人)

【实时数仓篇】6. 深入解读 Flink 资源管理机制

PPT

视频回放

   讲师:宋辛童(Apache Flink Contributor,阿里巴巴高级开发工程师)

—————————————————————————————————————————————————————————

【生态篇】1. Flink 完美搭档 – Pravega:架构总览

PPT

视频回放

 讲师:滕昱(DellEMC 技术总监)

【生态篇】2. PyFlink 核心功能介绍

PPT

视频回放

 讲师:程鹤群(军长)(Apache Flink PMC,阿里巴巴技术专家)

【生态篇】 3. Flink Pulsar Connector 机制剖析

PPT

视频回放

讲师:申毅杰(Apache Pulsar/Flink/Spark contributor,StreamNative 高级工程师)

【生态篇】4. 最佳实践:Flink 流式导入 HBase

PPT

视频回放

讲师:胡争(Apache HBase PMC,阿里巴巴技术专家)

———————————————————————————————————————————————————————

【社区成长篇】1. 30分钟教你如何入门 – Apache Flink 最全知识图谱详解

讲师:程鹤群(军长)(Apache Flink Committer,阿里巴巴技术专家)

[知识图谱](https://ververica.cn/developers/special-issue/)

PPT

视频回放

【社区成长篇】2. 从0到1,何如参与 Flink 社区

PPT

视频回放

讲师:付典(Apache Flink Committer,阿里巴巴技术专家)

3.【社区成长篇】Flink Contributor 速成指南

PPT

视频回放

  讲师:伍翀(云邪)(Apache Flink PMC,阿里巴巴技术专家)

4.【社区成长篇】Contributor 之路:Flink Improvement Proposal 规范与流程

PPT

视频回放

     讲师:秦江杰(Apache Flink PMC,阿里巴巴高级技术专家)

—————————————————————————————————————————————————————————

【运维篇】1. Flink 反压/延时监控和调参控制

PPT

视频回放

讲师:Rong Rong(Apache Flink Committer,Software Engineer at Uber) 

【运维篇】2.Metric 指标、监控、报警

PPT

视频回放

讲师:孙梦瑶(美团点评研发工程师)

【运维篇】3. Flink 常见问题诊断

PPT

视频回放

讲师:杨阳(阿里巴巴 高级运维工程师)

【运维篇】4. 大规模场景的高阶运维

PPT

视频回放

讲师:王华(阿里巴巴 运维专家)

【运维篇】5. Flink 作业问题分析和调优实践

PPT

视频回放

讲师:李康(虎牙 实时平台负责人)

【运维篇】6. Flink 生产配置最佳实践

PPT

视频回放

讲师:席建刚 趣头条实时平台负责人

【运维篇】7. 基于 Apache Flink 的监控告警系统

PPT

视频回放

 讲师:zhisheng(《Flink 实战与性能优化》专栏作者)

【运维篇】8. Demo: 基于 Flink SQL 构建离线应用

PPT

视频回放

讲师:李劲松(之信)(Apache Beam Committer,阿里巴巴技术专家)

【运维篇】9. Demo: 基于 Flink SQL 构建实时应用

PPT

视频回放

讲师:伍翀(云邪)(Apache Flink PMC,阿里巴巴技术专家)

—————————————————————————————————————————————————————————

【1.10特别篇】1. Flink on Zeppelin: 极致体验(1) 入门 + Batch

PPT

视频回放

 讲师:章剑锋(Apache Zeppelin PMC,阿里巴巴高级技术专家) 

【1.10特别篇】2. Flink on Zeppelin: 极致体验(2) Streaming + 高级用法

PPT

视频回放

 讲师:章剑锋(Apache Zeppelin PMC,阿里巴巴高级技术专家) 

【1.10特别篇】3. Alink 入门到实践

PPT

视频回放

 讲师:杨旭(阿里巴巴资深算法专家)

【1.10特别篇】 4. PyFlink 架构、应用案例及未来规划

PPT

视频回放

讲师:孙金城(Apache Flink PMC,Apache Beam Committer, 阿里巴巴高级技术专家)

【1.10特别篇】5. Running Flink on Kubernetes natively

PPT

视频回放

讲师:王阳(阿里巴巴实时计算引擎团队研发专家)

【1.10特别篇】6. 《Flink TaskExecutor 内存管理与配置》

PPT

视频回放

讲师:宋辛童(Apache Flink Contributor,阿里巴巴高级开发工程师)

【1.10特别篇】7. container 环境实战

PPT

视频回放

  讲师:唐云(Apache Flink Contributor,阿里巴巴高级开发工程师)

S2 进阶篇(已完结)

备注:S1基础篇本页下滑可见

2.1 Flink Runtime 核心机制剖析

PPT

视频回放

第一课文章

讲师:高赟(Apache Flink Contributor,阿里巴巴高级开发工程师)

2.2 Flink Time 深度解析

PPT

视频回放

第二课文章

讲师:崔星灿(Apache Flink Committer,加拿大约克大学博士后)

2.3 Flink Checkpoint-轻量级分布式快照

PPT

视频回放

第三课文章

讲师:唐云(Apache Flink Contributor,阿里巴巴高级开发工程师)

2.4 Flink on Yarn/K8S原理剖析及实践

PPT

视频回放

第四课文章

讲师:周凯波(Apache Flink Contributor,阿里巴巴技术专家)

2.5 Flink 数据类型与序列化

PPT

视频回放

讲师:马庆祥(Apache Flink Contributor,360数据开发高级工程师) 

2.6 Flink 作业执行解析

PPT

视频回放

讲师:岳猛(Apache Flink Contributor,网易云音乐实时计算平台研发工程师)

2.7 Flink网络流控及反压剖析

PPT

视频回放

讲师:张俊(Apache Flink Contributor,OPPO大数据平台研发负责人)

2.8 Metrics 与监控

PPT

视频回放

讲师:刘彪(Apache Flink Contributor,阿里巴巴技术专家)

2.9 Flink Connector开发

PPT

视频回放

讲师:董亭亭 快手实时计算引擎团队负责人

2.10 本地部署Zeppelin开发Flink程序

PPT

视频回放

 讲师:章剑锋(Apache Zeppelin PMC,阿里巴巴高级技术专家)

2.11 Flink State 最佳实践

PPT

视频回放

讲师:唐云(Apache Flink Contributor,阿里巴巴高级开发工程师)

Intel特邀课程: Take advantage of Intel Optane DCPM in Flink workload

PPT

视频回放

讲师:马艳 (Intel Software Engineer)

2.12 TensorFlow On Flink

PPT

视频回放

讲师:陈戊超(阿里巴巴技术专家)

Intel特邀课程:Anlytics-Zoo 构建统一的大数据分析+AI流水线

PPT

视频回放

讲师:史栋杰(Intel 资深软件架构师)

2.13 深度探索 Flink SQL

PPT

视频回放

讲师:贺小令(Apache Flink Contributor,阿里巴巴技术专家)

2.14 Apache Flink Python API 现状及规划

PPT

视频回放

讲师:孙金城(Apache Flink PMC,阿里巴巴高级技术专家)

2.15 Flink CEP 实战

PPT

视频回放

 讲师:刘博(哈啰出行大数据实时平台资深开发)

2.16 State Processor API 介绍与演示

PPT

视频回放

  讲师:戴资力(Apache Flink PMC)

S1 基础篇 (已完结)

1.1 为什么要学习 Apache Flink?

PPT点我

视频回放点我

1&2课文章

讲师:陈守元(阿里巴巴高级产品专家)

1.2 Flink基本概念

PPT点我

视频回放点我

1&2课文章

讲师:戴资力(Apache Flink PMC)

1.3 Flink 安装部署、环境配置及运行应用程序

PPT点我

视频回放点我

第三课文章

讲师:沙晟阳(阿里巴巴高级开发工程师)

1.4 DataStream API编程

PPT点我

视频回放点我

第四课文章

讲师:崔星灿(Apache Flink Committer)

1.5 客户端操作

PPT点我

视频回放点我

第五课文章

讲师:周凯波(阿里巴巴技术专家)

1.6 Window & Time

PPT点我

视频回放点我

第六课文章

讲师:邱从贤(阿里巴巴高级开发工程师)

1.7 状态管理与容错机制

PPT点我

视频回放点我

第七课文章

讲师:孙梦瑶(美团点评研发工程师)

1.8 Flink Table API 编程

PPT点我

视频回放点我

第八课文章

讲师:程鹤群(Apache Flink Contributor)

1.9 Flink SQL 编程

PPT点我

视频回放点我

第九课文章

讲师:伍翀(Apache Flink Committer)

flink-training-course's People

Contributors

cindy1764 avatar elenamjq531 avatar fancycrabtree avatar wuchong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flink-training-course's Issues

使用window 后追数据的问题 如何解决

使用window 例如五分钟一个固定窗口
如果save任务后 过几个小时再去追数据,重启的时候source会大量涌进来数据(暂停的几个小时数据有很多),
在这种情况会不会使窗口提前关闭(后面的数据先进来了),导致很多本该计算在这个个窗口的数据 没有计算进来,最后结果的错误,这种情况如何解决?

README.md中格式错误

3.12 30分钟教你如何入门 – Apache Flink 最全知识图谱详解的第一个链接格式错了
会导致直接打开无法看到内容

提交job的jar包之后报ClassCastException

我按照官网上的防欺诈案例写了个项目,gradle的,通过WebUI提交job之后报以下错误:

org.apache.flink.streaming.runtime.tasks.StreamTaskException: Could not instantiate outputs in order. at org.apache.flink.streaming.api.graph.StreamConfig.getOutEdgesInOrder(StreamConfig.java:429) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at org.apache.flink.streaming.runtime.tasks.StreamTask.createRecordWriters(StreamTask.java:1150) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at org.apache.flink.streaming.runtime.tasks.StreamTask.createRecordWriterDelegate(StreamTask.java:1134) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at org.apache.flink.streaming.runtime.tasks.StreamTask.<init>(StreamTask.java:284) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at org.apache.flink.streaming.runtime.tasks.StreamTask.<init>(StreamTask.java:271) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at org.apache.flink.streaming.runtime.tasks.SourceStreamTask.<init>(SourceStreamTask.java:73) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at org.apache.flink.streaming.runtime.tasks.SourceStreamTask.<init>(SourceStreamTask.java:69) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?] at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:?] at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:?] at org.apache.flink.runtime.taskmanager.Task.loadAndInstantiateInvokable(Task.java:1372) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:699) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at org.apache.flink.runtime.taskmanager.Task.run(Task.java:546) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at java.lang.Thread.run(Unknown Source) ~[?:?] Caused by: java.lang.ClassCastException: cannot assign instance of java.lang.invoke.SerializedLambda to field org.apache.flink.streaming.runtime.partitioner.KeyGroupStreamPartitioner.keySelector of type org.apache.flink.api.java.functions.KeySelector in instance of org.apache.flink.streaming.runtime.partitioner.KeyGroupStreamPartitioner at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(Unknown Source) ~[?:?] at java.io.ObjectStreamClass$FieldReflector.checkObjectFieldValueTypes(Unknown Source) ~[?:?] at java.io.ObjectStreamClass.checkObjFieldValueTypes(Unknown Source) ~[?:?] at java.io.ObjectInputStream.defaultCheckFieldValues(Unknown Source) ~[?:?] at java.io.ObjectInputStream.readSerialData(Unknown Source) ~[?:?] at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) ~[?:?] at java.io.ObjectInputStream.readObject0(Unknown Source) ~[?:?] at java.io.ObjectInputStream.defaultReadFields(Unknown Source) ~[?:?] at java.io.ObjectInputStream.readSerialData(Unknown Source) ~[?:?] at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) ~[?:?] at java.io.ObjectInputStream.readObject0(Unknown Source) ~[?:?] at java.io.ObjectInputStream.readObject(Unknown Source) ~[?:?] at java.io.ObjectInputStream.readObject(Unknown Source) ~[?:?] at java.util.ArrayList.readObject(Unknown Source) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?] at java.io.ObjectStreamClass.invokeReadObject(Unknown Source) ~[?:?] at java.io.ObjectInputStream.readSerialData(Unknown Source) ~[?:?] at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) ~[?:?] at java.io.ObjectInputStream.readObject0(Unknown Source) ~[?:?] at java.io.ObjectInputStream.readObject(Unknown Source) ~[?:?] at java.io.ObjectInputStream.readObject(Unknown Source) ~[?:?] at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:576) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:562) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:550) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:511) ~[flink-dist_2.12-1.11.3.jar:1.11.3] at org.apache.flink.streaming.api.graph.StreamConfig.getOutEdgesInOrder(StreamConfig.java:426) ~[flink-dist_2.12-1.11.3.jar:1.11.3] ... 14 more

我应该怎么解决呢?
以下是我的java代码:

FraudDetector.java:

`package com.hcg.flink.frauddetection.detector;

import org.apache.flink.api.common.state.ValueState;
import org.apache.flink.api.common.state.ValueStateDescriptor;
import org.apache.flink.api.common.typeinfo.Types;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.streaming.api.functions.KeyedProcessFunction;
import org.apache.flink.util.Collector;
import org.apache.flink.walkthrough.common.entity.Alert;
import org.apache.flink.walkthrough.common.entity.Transaction;

public class FraudDetector extends KeyedProcessFunction<Long, Transaction, Alert> {
private static final double SMALL_AMOUNT = 1.00;
private static final double LARGE_AMOUNT = 500.00;
private static final long ONE_MINUTE = 60 * 1000;

private transient ValueState<Boolean> flagState;
private transient ValueState<Long> timerState;

@Override
public void open(Configuration parameters) throws Exception {
    ValueStateDescriptor<Boolean> flagDescriptor = new ValueStateDescriptor<>("flag", Types.BOOLEAN);
    flagState = getRuntimeContext().getState(flagDescriptor);

    ValueStateDescriptor<Long> timerDescriptor = new ValueStateDescriptor<>("timer", Types.LONG);
    timerState = getRuntimeContext().getState(timerDescriptor);
}

@Override
public void processElement(Transaction transaction,
                           Context context,
                           Collector<Alert> collector) throws Exception {
    // Get the current state for the current key
    Boolean lastTransactionWasSmall = flagState.value();

    if (lastTransactionWasSmall != null && lastTransactionWasSmall) {
        if (transaction.getAmount() > LARGE_AMOUNT) {
            Alert alert = new Alert();
            alert.setId(transaction.getAccountId());
            collector.collect(alert);
        }

        // Clean up our state
        cleanUp(context);
    }

    if (transaction.getAmount() < SMALL_AMOUNT) {
        flagState.update(true);

        // set the timer and timer state
        long timer = context.timerService().currentProcessingTime() + ONE_MINUTE;
        context.timerService().registerProcessingTimeTimer(timer);
        timerState.update(timer);
    }
}

@Override
public void onTimer(long timestamp, OnTimerContext ctx, Collector<Alert> out) {
    // remove flag after 1 minute
    timerState.clear();
    flagState.clear();
}

private void cleanUp(Context ctx) throws Exception {
    // delete timer
    Long timer = timerState.value();
    ctx.timerService().deleteProcessingTimeTimer(timer);

    // clean up all state
    timerState.clear();
    flagState.clear();
}

}
`
FraudDetectionJob.java:

`package com.hcg.flink.frauddetection;

import com.hcg.flink.frauddetection.detector.FraudDetector;
import lombok.extern.slf4j.Slf4j;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.walkthrough.common.entity.Alert;
import org.apache.flink.walkthrough.common.entity.Transaction;
import org.apache.flink.walkthrough.common.sink.AlertSink;
import org.apache.flink.walkthrough.common.source.TransactionSource;

@slf4j
public class FraudDetectionJob {

public static void main(String[] args) throws Exception {
    StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

    DataStream<Transaction> transactions = env
            .addSource(new TransactionSource())
            .name("transactions");

    DataStream<Alert> alerts = transactions
            .keyBy(Transaction::getAccountId)
            .process(new FraudDetector())
            .name("fraud-detector");

    alerts
            .addSink(new AlertSink())
            .name("send-alerts");

    env.execute("Fraud Detection");
}

}
`
build.gradle:

`plugins {
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
id 'application'
}

group = 'com.hcg'
version = '1.0-SNAPSHOT'
sourceCompatibility = '11'

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

configurations {
// configuration that holds jars to include in the jar
extraLibs
}

dependencies {
compileOnly 'org.projectlombok:lombok:1.18.12'
annotationProcessor 'org.projectlombok:lombok:1.18.12'

implementation 'org.apache.flink:flink-clients_2.12:1.12.0'
implementation 'org.apache.flink:flink-streaming-java_2.12:1.12.0'
implementation 'org.apache.flink:flink-walkthrough-common_2.12:1.12.0'

}

application {
mainClass.set("com.hcg.flink.frauddetection.FraudDetectionJob")
}

jar {
manifest {
attributes('Main-Class': 'com.hcg.flink.frauddetection.FraudDetectionJob')
}
from {
configurations.extraLibs.collect { it.isDirectory() ? it : zipTree(it) }
}
}`

实时训练如何生成正负样本

在曝光和点击进行interval join 时生成的数据是正样本,但是需要拿到曝光没有点击的数据。interval join 是否可以输出该数据,比如在数据淘汰的时候?
使用cogroup 的话,由于

public static long getWindowStartWithOffset(long timestamp, long offset, long windowSize) {
return timestamp - (timestamp - offset + windowSize) % windowSize;
}

曝光和点击可能位于不了一个window,这个情况怎么处理呢,非要借助外部存储进行记录吗

更新

当前这个仓库是停止更新维护了吗? 有新的仓库吗

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.