Kylin系列(一)入门
Kylin系列(一)入门
目录
- 简介
- Kylin的特点
- 安装与配置
- 环境要求
- 安装步骤
- 基本概念
- Cube
- 维度与度量
- Kylin的基本操作
- 数据准备
- Cube设计
- Cube构建
- 查询与分析
- 最佳实践
- 常见问题
- 总结
简介
Apache Kylin 是一个开源的分布式分析引擎,提供 SQL 查询接口及多维分析(OLAP)能力。它能够处理超大规模数据集,并提供亚秒级的查询响应时间。Kylin 最初由 eBay 开发,并于 2015 年捐赠给 Apache 基金会。
Kylin 的主要目标是解决大数据分析中的查询性能问题,通过预计算和存储数据立方体(Cube),实现对超大规模数据集的快速查询。
Kylin的特点
- 高性能:通过预计算和存储数据立方体(Cube),实现对超大规模数据集的亚秒级查询响应。
- 易于使用:提供了简单的 SQL 查询接口和多维分析能力,用户可以使用熟悉的 SQL 进行数据分析。
- 高度集成:与 Hadoop 生态系统紧密集成,支持 HBase、Hive 等。
- 灵活的扩展性:可以根据需求灵活扩展,支持多种计算和存储引擎。
安装与配置
环境要求
- 操作系统:Linux(推荐),Windows
- Hadoop:2.x 或以上版本
- Hive:0.13 或以上版本
- HBase:0.98.1 或以上版本
- Spark:2.x 或以上版本
- Java:1.8 或以上版本
安装步骤
- 下载 Kylin:从 Apache Kylin 官网 下载最新版本的 Kylin。
- 解压文件:
tar -zxvf apache-kylin-*.tar.gz cd apache-kylin-* - 配置环境变量:
export KYLIN_HOME=/path/to/kylin export PATH=$KYLIN_HOME/bin:$PATH - 配置 Kylin:编辑
$KYLIN_HOME/conf/kylin.properties文件,根据实际环境配置相关参数,例如 Hadoop 和 HBase 的连接信息。kylin.metadata.url=kylin_hbase kylin.storage.url=kylin_hbase kylin.engine.spark.conf.spark.executor.memory=2g # 其他配置项根据需要修改 - 启动 Kylin:
kylin.sh start - 验证安装:打开浏览器,访问
http://<kylin-server>:7070/kylin,查看 Kylin 的 Web 界面,登录默认管理员账号(用户名:admin,密码:KYLIN)。
基本概念
Cube
Cube 是 Kylin 中的核心概念,代表了预计算的数据模型。通过预计算,可以大幅提升查询速度。Cube 由多个维度和度量组成。每个 Cube 定义了一个特定的查询空间,通过预计算所有可能的查询组合,实现在查询时的快速响应。
维度与度量
- 维度(Dimension):用于描述数据切片的属性,如时间、地区、产品等。维度通常是数据中用于分组、过滤和排序的字段。
- 度量(Measure):用于对数据进行汇总计算的指标,如销售额、订单数量等。度量通常是数值字段,支持各种聚合函数(如 SUM、COUNT、MAX 等)。
Kylin的基本操作
数据准备
在使用 Kylin 前,需要准备好源数据。通常,源数据存储在 Hive 表中。以下是一个简单的 Hive 表创建示例:
CREATE TABLE sales (date STRING,region STRING,product STRING,amount DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';
将数据导入 Hive 表中:
hive -e "LOAD DATA LOCAL INPATH '/path/to/data.csv' INTO TABLE sales;"
Cube设计
-
创建项目:在 Kylin 的 Web 界面中创建一个新的项目:
- 登录 Kylin Web 界面,点击左上角的
Projects。 - 点击
New Project,输入项目名称,点击Save。
- 登录 Kylin Web 界面,点击左上角的
-
数据模型:定义数据模型,选择维度和度量:
- 在项目中,点击
Models,然后点击New Model。 - 输入模型名称,选择数据源表(如
sales表)。 - 定义维度和度量,点击
Save保存。
- 在项目中,点击
-
Cube设计:基于数据模型设计 Cube,配置维度和度量:
- 在模型中,点击
Cubes,然后点击New Cube。 - 输入 Cube 名称,选择数据模型,配置维度和度量,点击
Save保存。
- 在模型中,点击
Cube构建
- 构建Cube:在 Web 界面中启动 Cube 构建任务:
- 在 Cube 列表中,点击
Build按钮,选择构建范围(全量构建或增量构建),点击Start。
- 在 Cube 列表中,点击
- 监控进度:通过 Web 界面监控 Cube 构建的进度和状态:
- 在
Monitor页面中,可以查看 Cube 构建的任务列表和详细信息。
- 在
查询与分析
- SQL查询:通过 Kylin 提供的 SQL 查询接口执行查询:
- 在 Web 界面中,点击
Query,输入 SQL 查询语句,点击Run。 - 例如:
SELECT date, region, SUM(amount) FROM sales_cube WHERE date >= '2024-01-01' GROUP BY date, region; - 在 Web 界面中,点击
- 多维分析:使用 BI 工具(如 Tableau、Power BI)连接 Kylin 进行多维分析:
- 在 BI 工具中,添加 Kylin 数据源,配置连接信息。
- 通过 BI 工具的界面,拖拽维度和度量,进行多维分析和可视化展示。
最佳实践
- 合理设计 Cube:避免过多维度和度量,以减少 Cube 的构建和存储成本。设计时应考虑查询需求,选择最常用的维度和度量。
- 数据分区:利用数据分区提升查询性能。例如,可以按时间分区,以减少查询时扫描的数据量。
- 定期维护:定期对 Cube 进行维护和优化,确保查询性能。可以定期重新构建 Cube,清理过期数据,调整配置参数等。
常见问题
- Cube构建失败:检查日志文件,确认配置和环境是否正确。例如,检查 HBase 和 Hadoop 的连接信息,确认所有服务是否正常运行。
- 查询性能不佳:优化 Cube 设计,减少不必要的维度和度量。调整 Kylin 配置参数,如内存设置、缓存设置等。
- 数据不一致:确保源数据的一致性和完整性。在数据加载和 Cube 构建过程中,避免数据变更。
总结
本文详细介绍了 Apache Kylin 的基本概念、安装与配置、基本操作及最佳实践。通过 Kylin,用户可以实现对超大规模数据集的快速查询和分析。希望这篇文章能帮助你更好地理解和使用 Apache Kylin。后续文章将深入探讨 Kylin 的高级功能和应用场景,如高级 Cube 设计、实时数据分析等。
如果有任何问题,欢迎留言讨论。
相关文章:
Kylin系列(一)入门
Kylin系列(一)入门 目录 简介Kylin的特点安装与配置 环境要求安装步骤 基本概念 Cube维度与度量 Kylin的基本操作 数据准备Cube设计Cube构建查询与分析 最佳实践常见问题总结 简介 Apache Kylin 是一个开源的分布式分析引擎,提供 SQL 查询接口及多维分析&#x…...
pmp学习交流组队~
首先,来看看什么是PMP PMP指的是项目管理专业人士资格认证。它是由美国项目管理协会(Project Management Institute(PMI)发起的,严格评估项目管理人员知识技能是否具有高品质的资格认证考试。 pmp备考攻略本人推荐的参考资料比较多࿰…...
公司常用的监控软件有哪些?2024年六大公司监控软件良心推荐!
在现代企业管理中,监控软件不仅可以帮助提高员工生产力,还可以确保企业数据的安全和保护。小编分享六款公司监控软件,能够满足不同企业的需求,提升管理效率和信息安全。 一、值得推荐的监控软件 1. 固信软件 固信软件https://ww…...
DNS解析异常--排查验证
目录 1.脚本 2.解析结果 3.脚本详解 1.脚本 for j in {1..100}; do for i in $domain1 $domain2; do echo $i; dig $i $dns服务器1 short; sleep 1; dig $i $dns服务器2 short ; sleep 1; done; sleep 2; done; 2.解析结果 ## 域名的解析实际IP: ## $domain1 $IP1 ## $do…...
OpenCV库学习之Canny边缘检测模块
OpenCV库学习之Canny边缘检测模块 一、简介 Canny边缘检测是OpenCV库中一个非常著名的边缘检测算法模块,由John F. Canny在1986年提出。该算法通过多个步骤来确定图像中的边缘,包括噪声降低、梯度计算、非极大值抑制、双阈值检测和边缘跟踪等。Canny边缘…...
Python 教程(七):match...case 模式匹配
目录 专栏列表前言基本语法match 语句case 语句 模式匹配的类型示例具体值匹配类型匹配序列匹配星号表达式命名变量复杂匹配 模式匹配的优势总结 专栏列表 Python教程(一):环境搭建及PyCharm安装Python 教程(二)&…...
Python小项目实战:杨辉三角
题目要求 编写python程序,实现输入正整数n,输出一个n层的杨辉三角,要求打印显示的时候左右对称 比如,输入7,返回结果如图所示 解决思路 generate_pascals_triangle(n) 函数: 生成一个包含 n 层的杨辉三角。 初始化第…...
java注解与反射(非常详细, 带有很多样例)
下面是详细地讲解 Java 中的注解与反射,并提供了很多的示例来帮助理解。 Java 注解(Annotations) 1. 注解的基本概念 注解(Annotation)是 Java 5 引入的一种用于为代码元素(类、方法、字段、参数等&…...
模拟实现短信登录功能 (session 和 Redis 两种代码实例) 带前端演示
目录 整体流程 发送验证码 短信验证码登录、注册 校验登录状态 基于 session 实现登录 实现发送短信验证码功能 1. 前端发送请求 2. 后端处理请求 3. 演示 实现登录功能 1. 前端发送请求 2. 后端处理请求 校验登录状态 1. 登录拦截器 2. 注册拦截器 3. 登录完整…...
C# Parallel设置最大并发度
背景 以前用Parallel都是直接用,今天在处理pdf时发现不是很快,特别是有时居然卡死了,异常是有处理的,但没有爆出来,不知道问题在哪。 老老实实不用多线程,一个多小时觉得还是太累。 用的话,部…...
【java】力扣 反转字符串中的单词
目录 题目描述题目描述思路代码 题目描述 151.反转字符串中的单词 题目描述 思路 主要是利用快慢指针和字符串的截取 还要了解去掉首尾空格的函数是trim 那s"the sky is blue"举例 这个例子是没有首尾空格的,以防万一,我们不管有没有&#…...
科学设计程序员面试内容,破解“八股文”之弊
“八股文”在实际工作中是助力、阻力还是空谈? 作为现在各类大中小企业面试程序员时的必问内容,“八股文”似乎是很重要的存在。但“八股文”是否能在实际工作中发挥它“敲门砖”应有的作用呢?有IT人士不禁发出疑问:程序员面试考…...
蓝牙BlueZ验证使用记录
最近使用的一款AICSemi AIC8800D8芯片做的WiFiBT二合一模组,该模组WiFi使用SDIO通信,BT使用UART通信,供应商丢了一份驱动,包含了三个目录:aic8800_bsp、aic8800_fdrv和aic8800_btlpm,而蓝牙部分提供了lbh_s…...
【从0制作自己的ros导航小车:上位机篇】02、ros1多机通讯与坐标变换可视化
从0制作自己的ros导航小车 前言一、ros1多机通讯二、rviz可视化小车坐标系 前言 上节课完成了里程计数据与坐标变换发布,但是还没有测试,本节进行测试,测试之前需要知道一件事,上位机也就是开发板一般不做可视化用,因…...
JumpServer关闭admin mfa验证
背景 因为上一次启动了mfa验证,但是没有验证就关机重启,导致再开机输入密码后需要mfa绑定,但是怎么也无法绑定成功,导致无法登录。 故希望通过后台取消mfa的验证 解决方法 1. 进入docker docker exec -it jms_core /bin/bash…...
Kafka知识总结(选举机制+控制器+幂等性)
文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 选举机制 控制器(Broker)选举 控制器就是…...
2024非常全的接口测试面试题及参考答案-软件测试工程师没有碰到算我输!
一、前言 接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性。接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的&#…...
python 写一个年会抽奖的demo
使用while 进行循环,进行三轮之后,停止。random.sample() 抽样不重复查询数据 import random name_list [] for i in range(0,100): name_list .append(员工{i}) winnerNum [30,6,3] //每个中奖人数 count 0 while count < 3: choice i…...
C++ OpenCV 实现多张图片叠加 叠加文字
C OpenCV 实现多张图片叠加 叠加文字 在C中使用OpenCV叠加多张图片以及添加文字的基本步骤如下: 加载多张图片。 确定叠加位置。 使用cv::addWeighted叠加图片,可以为叠加的图片添加透明度。 使用cv::putText在图片上添加文字。 显示或保存结果图片…...
用 apifox cli 命令行运行本地接口出现TypeError:Invalid IP address: undefined
用 apifox cli 命令行运行本地接口出现TypeError:Invalid IP address: undefined,客户端运行是通过的但命令行运行会报错 修改端口也是一样报错,地址修改为127.0.0.1会报错connect ECONNREFUSED 127.0.0.1:8080 解决方法:不用localhost&…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...
