码上时刻|通过逻辑视图 Logic View 快速实现批流一体

近年来,随着商业环境的竞争日益激烈,企业对于实时数据服务的需求急剧增加。Kyligence 在服务众多客户的过程中,很多企业对数据平台的要求越来越高,都希望能即时获取、处理数据,以便快速响应市场变化,加快决策过程,有效推动产品和服务的不断迭代和优化。

在实际的场景中,为了满足更深层次的业务分析需求和进行更深入的数据洞察和分析,如趋势分析、实时数据与历史数据的综合汇总等复杂场景,实时数据必须与存储在数据仓库中的批处理数据相结合。在本文中,我们将简要分享 Kyligence 如何通过其创新的逻辑视图 Logic View 的功能,帮助企业构建批流一体的数据平台,从而提高数据分析的准确性,让业务决策更加精准,为企业提供强大的竞争优势。

场景介绍 

优惠券是银行、零售等企业常见的促销方式,接下来我们以某银行对优惠券活动影响分析的需求为例,简单分享 Kyligence 批流一体能力如何帮助企业实现即时的数据分析与洞察,并进行精准决策与营销。

该银行的运营部门希望能够在客户使用优惠券的瞬间,就能即时分析这一行为带来的其他各项指标变化,分析维度一般包括客户标签、客户经理、消费券类型等。运营部门不仅需要访问客户消费的实时数据,还需要访问并分析历史数据,以便对比和理解不同优惠券在相应时间的表现状况。

这就要求系统不仅要支持复杂的数据处理任务,还要能够通过简单的 SQL 查询,同时分析实时数据和历史数据,而这些需求都建立在银行海量数据基础上。该银行希望用简单、可靠、用户友好的方式实现批流一体,即用同一个模型,一套 SQL 既能分析实时指标,也能分析历史数据。

方案实现 

Kyligence Enterprise 是基于 Apache Kylin 核心的企业级 OLAP (多维分析)平台,为本地及云上用户提供 PB 级数据集上的亚秒级查询能力,优化数据仓库及数据湖上的多维分析能力。为了满足客户对实时数据分析的需求,Kyligence Enterprise 支持配备可视化一站式实时计算平台 Kyligence StreamOps,可连接 OLAP 和数据湖等众多框架,满足客户对批流一体、湖仓一体的需求。接下来,我们将分享在产品中如何通过简单五步实现批流一体。

1. 首先,我们通过实时计算平台 Kyligence StreamOps 将客户消息队列中数据写入 Hudi,并自动创建 Hive 映射表。

2. 部署完成 Kyligence Enterprise 后,将 Hudi SDK Jar 包放置在 $KYLIN_HOME/spark/jars 目录下,欢迎您联系 Kyligence 客户经理获取 Jar 包。

3. 在 Kyligence Enterprise 配置文件中添加以下配置

# 开启logical view
kylin.source.ddl.logical-view.enabled=true
# 配置查询的 Hudi 扩展
kylin.storage.columnar.spark-conf.spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension,org.apache.spark.sql.hudi.HoodieSparkSessionExtension
kylin.storage.columnar.spark-conf.spark.sql.catalog.kylin=org.apache.spark.sql.hudi.catalog.HoodieCatalog
kylin.storage.columnar.spark-conf.spark.kryo.registrator=org.apache.spark.HoodieSparkKryoRegistrar
kylin.storage.columnar.spark-conf.spark.serializer=org.apache.spark.serializer.KryoSerializer

# 配置构建的 Hudi 扩展
kylin.engine.spark-conf.spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension,org.apache.spark.sql.hudi.HoodieSparkSessionExtension
kylin.engine.spark-conf.spark.sql.catalog.kylin=org.apache.spark.sql.hudi.catalog.HoodieCatalog
kylin.engine.spark-conf.spark.kryo.registrator=org.apache.spark.HoodieSparkKryoRegistrar
kylin.engine.spark-conf.spark.serializer=org.apache.spark.serializer.KryoSerializer

# 防止 Spark 缓存表元数据导致 Hudi 新增数据查询不到
kylin.storage.columnar.spark-conf.spark.sql.filesourceTableRelationCacheSize=0

4. 在 Kyligence Enterprise 中创建逻辑视图,根据需求我们可以用 Hudi 中的实时表,通过 Union 合并 Hive 中的历史数据,从而达到批流一体的效果。

-- 创建 Hudi 表
$KYLIN_HOME/spark/bin/spark-shell \
      --conf spark.master=local \
      --conf spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension \
      --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog \
      --conf spark.serializer=org.apache.spark.serializer.KryoSerializer

spark.sql("create table test_hudi.hudi_table (id bigint,name string,dt date) using hudi tblproperties (type = 'cow',primaryKey = 'id') partitioned by (dt) location 'hdfs://$ip:8020/user/hive/warehouse/test_hudi.db/hudi_table'")

-- Hive 中创建同结构的表,作为批数据表
CREATE TABLE HIVE.HUDI_HIVE(  
  id bigint,   
  name string, 
  dt date);

5. 创建 Logic View,其中 TEST_HUDI.HUDI_TABLE 为 Hudi 中的实时表,HIVE.HUDI_HIVE为 Hive 中的批数据表。

CREATE LOGICAL VIEW KYLIN_LOGICAL_VIEW.HUDI_HIVE as 
select id,name,dt from TEST_HUDI.HUDI_TABLE
union all select id,name,dt from HIVE.HUDI_HIVE

完成上述五个步骤后,Kyligence Enterprise 将会在分钟级完成构建,现在产品中的模型既包含 Hive 中的历史数据,又可以实时分析 Hudi 中的实时数据。

总结与扩展

通过 Kyligence 的批流一体解决方案,该银行现在使用统一的数据模型和一套 SQL 语句,就能高效地完成实时和历史数据的综合分析。这不仅极大地简化了数据分析流程,还提高了数据分析的准确性和及时性,运营人员和营销人员能更好地评估优惠券活动的效果,为未来的营销策略提供数据支持。如果您对上述方案感兴趣,欢迎点击这里与我们取得联系!

关于 Kyligence

跬智信息(Kyligence)由 Apache Kylin 创始团队于 2016 年创办,是领先的大数据分析和指标平台供应商,提供企业级 OLAP(多维分析)产品 Kyligence Enterprise 和智能一站式指标平台 Kyligence Zen,为用户提供企业级的经营分析能力、决策支持系统及各种基于数据驱动的行业解决方案。

Kyligence 已服务中国、美国、欧洲及亚太的多个银行、证券、保险、制造、零售、医疗等行业客户,包括建设银行、平安银行、浦发银行、北京银行、宁波银行、太平洋保险、中国银联、上汽、长安汽车、星巴克、安踏、李宁、阿斯利康、UBS、MetLife 等全球知名企业,并和微软、亚马逊云科技、华为、安永、德勤等达成全球合作伙伴关系。Kyligence 获得来自红点、宽带资本、顺为资本、斯道资本、Coatue、浦银国际、中金资本、歌斐资产、国方资本等机构多次投资。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/492809.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

业界首次!搭载英伟达GPU,50倍性能提升!Zilliz发布Milvus 2.4向量数据库

在上周在美国硅谷圣何塞召开的NVIDIA GTC大会上,Zilliz[1] 发布了 Milvus 2.4 [2]版本。这是一款革命性的向量数据库系统,它在业界首次采用了英伟达 GPU 的高效并行处理能力和 RAPIDS cuVS 库中新推出的 CAGRA[3]( CUDA-Accelerated Graph In…

SpringBoot+ElasticSearch实现文档内容抽取、高亮分词、全文检索

需求 产品希望我们这边能够实现用户上传PDF、WORD、TXT之内得文本内容,然后用户可以根据附件名称或文件内容模糊查询文件信息,并可以在线查看文件内容。 一、环境 项目开发环境: 后台管理系统springbootmybatis_plusmysqles 搜索引擎&#…

c++AVL树

cAVL树 1. 前言 map/multimap、set/multiset这几个容器的共同点是:它们的底层都是按照搜索二叉树来实现的,但是搜索二叉树存在一个缺陷:如果往树中插入的元素有序或接近有序,二叉树搜索就会退化成单支树,时间复杂度会…

Java入门之数据类型

一、数据类型 基本数据类型 (1)如果要定义“long类型的变量要在数值后面加一个L作为后缀” (2)如果要定义float类型的变量的时候数据值也要加一个作为后缀 小结: 练习 内容: 姓名:巴巴托斯 &…

centos7二进制安装openstack train版本双网口五节点

这里写目录标题 材料准备宿主机安装KVM 网络规划硬件规划本案例局限性密码规划虚拟机准备网络准备centos7模板机准备 数据库安装安装rabbitMQ消息队列安装memcached服务安装Etcd安装keystone身份服务创建数据库用户keystone安装keystone组件创建admin并启动keystone监听验证key…

第3章:角色提示,强化Chatgpt输出新篇章!

角色提示技术 角色提示技术(role prompting technique),是通过模型扮演特定角色来产出文本的一种方法。用户为模型设定一个明确的角色,它就能更精准地生成符合特定上下文或听众需求的内容。 比如,想生成客户服务的回复…

新手如何去做性能测试?

1、性能测试是什么? 一句话概括:不断的通过不同场景的系统表现去探究系统设计与资源消耗之间的平衡。 具体一点:通过在测试环境下对系统或构件的性能进行探测,用以验证在生产环境下系统性能是否达到预估的性能需求,发…

堆排序在优先队列的应用及其C代码示例

堆排序在优先队列的应用及其C代码示例 一、引言二、堆排序的基本思想三、优先队列的实现四、最大优先队列的实现五、最小优先队列的实现六、性能分析七、C代码示例八、应用场景与实例九、堆排序与优先队列的进一步优化十、结论 一、引言 堆排序(Heap Sort&#xff…

javascript基础代码练习

一、输入新增病例数&#xff0c;累计确诊病例数&#xff0c;14天内聚集性疫情发生天数。新增或者累计确诊病例为0则该地区为低风险地区。新增大于0且累计确诊&#xff1c;50或者累计大于50且14天内聚集性疫情发生天数为0的地区为中风险地区。其他情况为高风险地区。 <!DOCT…

Live800:应对客户投诉的技巧与方法,以解决为导向

在商业世界中&#xff0c;客户投诉是无法避免的现象。无论你的产品或服务有多好&#xff0c;总会有一些客户对其不满。关键在于&#xff0c;你如何应对这些投诉。正确的处理方式可以转危为机&#xff0c;提升客户满意度&#xff0c;甚至增强品牌忠诚度。文章将探讨如何有效处理…

Python基础教程:基本数据类型

基本数据类型 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组) 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合) Numbers(数字) 数字数据类型用于存储数值。 他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对…

Linux 进程信号:产生信号

目录 一、通过终端按键产生信号 1、signal()函数 2、核心转储 3、ulmit命令 二、调用系统函数向进程发信号 1、kill()函数 2、raise()函数 3、abort()函数 三、发送信号的过程 读端关闭、写端继续写入的情况 如何理解软件条件给进程发送信号: 四、软件条件产生信…

【Vue】可拖拽侧边栏实现

在本篇博客中&#xff0c;我们将探讨如何在 Vue.js 项目中实现一个可拖拽的侧边栏。此功能可以通过修改 HTML 和 Vue 组件的脚本来实现。 首先&#xff0c;我们需要在 HTML 文件中定义侧边栏的容器和用于拖拽的元素。在 Vue 组件中&#xff0c;我们将使用 Vue 的响应式系统来追…

缓存菜品、套餐、购物车相关功能

一、缓存菜品 通过缓存的方式提高查询性能 1.1问题说明 大量的用户访问导致数据库访问压力增大&#xff0c;造成系统响应慢&#xff0c;用户体验差 1.2 实现思路 优先查询缓存&#xff0c;如果缓存没有再去查询数据库&#xff0c;然后载入缓存 将菜品集合序列化后缓存入red…

流域生态系统水-碳-氮耦合过程模拟

原文链接&#xff1a;流域生态系统水-碳-氮耦合过程模拟https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247599209&idx3&snbb447abff048424d640c4a45755451f7&chksmfa82058ecdf58c9810ec4c20ccaa521c71773422647f508b690ac4d90df1e273b65ae2db7521&…

财报解读:中通正在从“价格战”跳到“价值战?”

从数据来看&#xff0c;我国快递行业持续保持着上升势头。国家邮政局数据显示&#xff0c;今年1至2月我国快递发展指数为329.6&#xff0c;同比提升26.7%。 不过&#xff0c;在向好的行业趋势当中&#xff0c;相关企业仍有烦忧。一方面&#xff0c;行业竞争加剧&#xff0c;新…

IP定位技术打击网络犯罪

IP定位技术在打击网络犯罪中扮演着至关重要的角色。随着互联网的普及和网络技术的飞速发展&#xff0c;网络犯罪现象日益严重&#xff0c;对社会的稳定和安全造成了极大的威胁。IP定位技术的应用&#xff0c;为公安机关追踪和打击网络犯罪提供了有力的技术支持。 首先&#xff…

【OS探秘】【虚拟化】【软件开发】在Windows 11上安装mac OS虚拟机

一、所需原料 Windows 11主机、Oracle VM VirtualBox虚拟化平台、mac OS 11镜像文件 二、安装步骤 1、 在VBox管理器中&#xff0c;点击“新建”&#xff0c;进入向导模式&#xff0c;指定各个字段&#xff1a;

Navicat BI 工具 | 连接数据

早前&#xff0c;海外 LearnBI online 博主 Adam Finer 对 Navicat Charts Creator 这款 BI&#xff08;商业智能&#xff09;工具进行了真实的测评。上一期&#xff0c;我们介绍了这位博主对 Navicat BI 工具的初始之感。今天&#xff0c;我们来看看从连接数据的角度&#xff…

Redis是单线程还是多线程?(面试题)

1、Redis5及之前是单线程版本 2、Redis6开始引入多线程版本&#xff08;实际上是 单线程多线程 版本&#xff09; Redis6及之前版本&#xff08;单线程&#xff09; Redis5及之前的版本使用的是 单线程&#xff0c;也就是说只有一个 worker队列&#xff0c;所有的读写操作都要…