1、用户画像体系部分分实时标签和离线标签,具体方案参考了阿里云用户画像标签体系的架构方案并加以修改,采用lamda架构的方式通过离线标签T-1修正实时标签策略。
2、架构设计
参考阿里云架构体系:
修正的架构体系:
基于MaxCompute+Hologres的人群圈选和数据服务实践-阿里云开发者社区
https://developer.aliyun.com/article/792500
3、逻辑实现
由于Hologres版本过低,0.8版本不支持Blink source sink ,才有APi方式实现
①pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.alibaba.blink</groupId>
<artifactId>blink-udx-3.x</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<scala.version>2.11.12</scala.version>
<scala.binary.version>2.11</scala.binary.version>
<blink.version>blink-3.3.0</blink.version>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<sdk.version>0.38.3-public</sdk.version>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba.blink</groupId>
<artifactId>flink-core</artifactId>
<version>${blink.version}</version>
<!-- <scope>provided</scope>-->
<!-- <systemPath>${project.basedir}/lib/flink-core-blink-3.2.2.jar</systemPath>-->
</dependency>
<dependency>
<groupId>com.alibaba.blink</groupId>
<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
<version>${blink.version}</version>
<!-- <scope>provided</scope>-->
<!-- <systemPath>${project.basedir}/lib/flink-streaming-java_2.11-blink-3.2.2.jar</systemPath>-->
</dependency>
<!--打包udf自定义函数需要添加此依赖-->
<dependency>
<groupId>com.alibaba.blink</groupId>
<artifactId>flink-table_${scala.binary.version}</artifactId>
<version>${blink.version}</version>
<!-- <scope>provided</scope>-->
<!-- <systemPath>${project.basedir}/lib/flink-table_2.11-blink-3.2.2.jar</systemPath>-->
</dependency>
<dependency>
<groupId>com.alibaba.blink</groupId>
<artifactId>flink-table-common</artifactId>
<version>${blink.version}</version>
<!-- <scope>provided</scope>-->
<!-- <systemPath>${project.basedir}/lib/flink-table_2.11-blink-3.2.2.jar</systemPath>-->
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba.blink/flink-streaming-scala -->
<dependency>
<groupId>com.alibaba.blink</groupId>
<artifactId>flink-streaming-scala_${scala.binary.version}</artifactId>
<version>${blink.version}</version>
<!-- <scope>provided</scope>-->
</dependency>
<dependency>
<groupId>com.alibaba.blink</groupId>
<artifactId>flink-java</artifactId>
<version>${blink.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.blink</groupId>
<artifactId>flink-scala_${scala.binary.version}</artifactId>
<version>${blink.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba.blink/flink-jdbc -->
<dependency>
<groupId>com.alibaba.blink</groupId>
<artifactId>flink-jdbc</artifactId>
<version>${blink.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.blink</groupId>
<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
<version>${blink.version}</version>
<!-- <scope>provided</scope>-->
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.11.12</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.scala-lang/scala-reflect -->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-reflect</artifactId>
<version>2.11.12</version>
<scope>provided</scope>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.aliyun.datahub</groupId>-->
<!-- <artifactId>aliyun-sdk-datahub</artifactId>-->
<!-- <version>2.12.2-public</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.aliyun.datahub</groupId>
<artifactId>aliyun-sdk-datahub</artifactId>
<version>2.12.2-public</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jul-slf4j</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<!--<exclusion>-->
<!--<artifactId>jackson-databind</artifactId>-->
<!--<groupId>com.fasterxml.jackson.core</groupId>-->
<!--</exclusion>-->
<!--<exclusion>-->
<!--<artifactId>jackson-annotations</artifactId>-->
<!--<groupId>com.fasterxml.jackson.core</groupId>-->
版权声明:本文为weixin_44996457原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。