当前位置: 首页 > news >正文

数据分析两件套ClickHouse+Metabase(一)

ClickHouse篇

安装ClickHouse

ClickHouse有中文文档, 安装简单 -> 文档
官方提供了四种包的安装方式, deb/rpm/tgz/docker, 自行选择适合自己操作系统的安装方式
这里我们选deb的方式, 其他方式看文档

sudo apt-get install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \/etc/apt/sources.list.d/clickhouse.list
sudo apt-get updatesudo apt-get install -y clickhouse-server clickhouse-client

到这里先不慌着启动, 改一波配置
服务端配置默认地址在/etc/clickhouse-server
尽量不要直接修改config.xml, 而是在config.d子目录中新建配置文件, 易于维护和升级, 文件名随意但会按字母顺序生效
一些简单配置:

<clickhouse><listen_host>::</listen_host> # 打开远程访问<path>xxx</path> # 表数据存储路径<tmp_path>xxxx</tmp_path> # 一些临时数据<max_server_memory_usage>21474836480</max_server_memory_usage> # 服务器进程的最大内存使用量, 根据自己情况设置<logger><level>warning</level> # 日志级别<log>xxx</log> # 日志路径<errorlog>xxx</errorlog> # 错误日志路径</logger>
</clickhouse>

配置完, 启动服务

sudo service clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you've set up a password.

建表

大部分操作和mysql差不多
不过ClickHouse有一套自己的字段类型, 简单建一个表

CREATE TABLE test
(`column1` Date, # 日期类型`column2` FixedString(7), # 固定长度字符串`column3` UInt32, # 无符号int类型`column4` Nullable(String), # 可为空字符串`column5` Float64 # 浮点数
)
ENGINE = MergeTree()
order by column1

更多字段类型以及不同engine的作用详见文档

PySpark写入ClickHouse

spark写入ClickHouse还是很方便的
需要下载一个新的驱动包, 放到每个worker节点的jars目录下 -> 官方jdbc驱动
目前是 clickhouse-jdbc-0.4.6.jar

properties = {'driver': 'com.clickhouse.jdbc.ClickHouseDriver',"socket_timeout": "300000","rewriteBatchedStatements": "true","batchsize": "1000000","numPartitions": "8",'user': 'default','password': '123456', # 配置自己的用户名密码'isolationLevel': 'NONE'}df = spark.read.parquet('xx') # 读一个df, 注意schema和表结构一致
df.write.jdbc(url='jdbc:clickhouse://服务器ip:8123/数据库名', table='表名', mode='append', properties=properties)

不想要监控可以省略以下步骤, 本篇到此结束

监控

ClickHouse自带各种统计表都存在system库里, 我们需要一个可视化平台接入一下比如Grafana

选择适合自己的版本下载 -> 官网下载地址
以及有其他问题可以翻阅文档 -> 官方文档
下载后解压, Grafana中默认数据源是没有ClickHouse的, 需要装一个扩展 -> 地址

grafana-cli --pluginsDir=可指定安装路径 plugins install vertamedia-clickhouse-datasource

不需要什么配置直接./bin/grafana server即可启动, 不过建议改一下web页面的端口, 默认是3000, 会和后面的metabase冲突
配置文件在conf/defaults.ini, 比如修改http_port=2999
然后在浏览器访问页面, 默认账户密码admin, admin

进来以后选Data source
在这里插入图片描述

添加数据源, 搜ClickHouse, 然后按图改名字, 填ip, 填账号密码, 然后保存即可
在这里插入图片描述

下一步直接导入一个现成的ClickHouse仪表盘 -> 地址
省流, DashboardID: 13606

页面右上角点击 import dashboard
在这里插入图片描述

填入dashboardID, 点击右侧load
在这里插入图片描述

然后选择刚添加的数据源, 导入即可

图表很多, 不一一展示了, 至此监控安装完毕
在这里插入图片描述

相关文章:

数据分析两件套ClickHouse+Metabase(一)

ClickHouse篇 安装ClickHouse ClickHouse有中文文档, 安装简单 -> 文档 官方提供了四种包的安装方式, deb/rpm/tgz/docker, 自行选择适合自己操作系统的安装方式 这里我们选deb的方式, 其他方式看文档 sudo apt-get install -y apt-transport-https ca-certificates dirm…...

urllib爬虫模块

urllib爬取数据 import urllib.request as request# 定义url url "https://www.baidu.com" #模拟浏览器发起请求获取响应对象 response request.urlopen(url)""" read方法返回的是字节形式的二进制数据 二进制--》字符串 解码 decode( 编码的格式…...

TCP消息传输可靠性保证

TCP链接与断开 -- 三次握手&四次挥手 三次握手 TCP 提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好两端之间的准备工作。 所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。在socket编程中&#xff0c;这一…...

Visual Studio 与QT ui文件

对.ui文件鼠标右键&#xff0c;然后单击 Open with…在弹出的窗口中&#xff0c;选中左侧的 Qt Designer&#xff0c;然后单击右侧的 Add 按钮&#xff0c;随后会弹出一个窗口&#xff0c;在 Program: 输入框中输入 Qt Designer 的路径&#xff0c;最后单击 OK找到 Qt Designer…...

竞赛项目 深度学习验证码识别 - 机器视觉 python opencv

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x…...

ORA-00845: MEMORY_TARGET not supported on this system

处理故障时&#xff0c;发现startup实例失败&#xff0c;报错ORA-00845: MEMORY_TARGET not supported on this system SYSorcl1> startup; ORA-00845: MEMORY_TARGET not supported on this system 查看alert日志&#xff0c;报错如下 Starting ORACLE instance (normal…...

wps设置一键标题字体和大小

参考 wps设置一键标题字体和大小&#xff1a;https://www.kafan.cn/A/7v5le1op3g.html 统一一键设置...

TIA博途WINCC_如何在IO域中保证输入数值只能为正数?

TIA博途WINCC_如何在IO域中保证输入数值只能为正数? 在某些情况下,输入的数值受到限制,本例就以输入的数值必须为正整数为例进行说明。 如下图所示,在PLC的全局DB块中添加一个测试变量,数据类型为Int(该数据类型的范围为-32768~+32767), 如下图所示,将该测试变量拖拽到…...

《Linux从练气到飞升》No.13 Linux进程状态

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…...

安卓快速开发

1.环境搭建 Android Studio下载网页&#xff1a;https://developer.android.google.cn/studio/index.html 第一次新建工程需要等待很长时间&#xff0c;新建一个Empty Views Activity 项目&#xff0c;右上角选择要运行的机器&#xff0c;运行就安装上去了(打开USB调试)。 2…...

SpringCloud微服务之间如何进行用户信息传递(涉及:Gateway、OpenFeign组件)

目录 1、想达到的效果2、用户信息在微服务之间传递的两种途径3、用RuoYi-Cloud为例进行演示说明&#xff08;1&#xff09;网关将用户信息写在请求头中&#xff08;2&#xff09;业务微服务之间通过OpenFeign进行调用&#xff0c;并且将用户信息写在OpenFeign准备的请求头中&am…...

RabbitMQ之TTL+死信队列实现延迟队列

RabbitMQ是一个流行的消息队列系统&#xff0c;它提供了许多有用的功能&#xff0c;其中之一是TTL&#xff08;Time To Live&#xff09;和死信队列。这些功能可以用来实现延迟队列&#xff0c;让我们来看看如何使用它们。 首先&#xff0c;什么是TTL&#xff1f;TTL是消息的存…...

GrapeCity Documents for PDF (GcPdf) 6.2 Crack

GrapeCity PDF 文档 (GcPdf) 改进了对由 GcPdf 以外的软件生成的现有 PDF 文档的处理 在新的 v6.2 版本中&#xff0c;GcPdf 增强了 PDF 文档的加载和保存&#xff0c;并提供以下优势&#xff1a; GcPdf 现在可以加载和保存可能不严格符合 PDF 规范的 PDF 文档。GcPdf 现在将…...

【Sklearn】基于随机森林算法的数据分类预测(Excel可直接替换数据)

【Sklearn】基于随机森林算法的数据分类预测(Excel可直接替换数据) 1.模型原理1.1 模型原理1.2 数学模型2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果1.模型原理 随机森林(Random Forest)是一种集成学习方法,通过组合多个决策树来构建强大的分类或回归…...

问AI一个严肃的问题

chatgpt的问世再一次掀起了AI的浪潮&#xff0c;其实我一直在想&#xff0c;AI和人类的关系未来会怎样发展&#xff0c;我们未来会怎样和AI相处&#xff0c;AI真的会完全取代人类吗&#xff0c;带着这个问题&#xff0c;我问了下chatgpt&#xff0c;看一看它是怎么看待这个问题…...

Flowable流程的挂起与激活详解

1. 挂起与激活的定义及区别 在Flowable流程中&#xff0c;挂起是指将流程实例暂停&#xff0c;它将停止执行当前步骤并暂时中断流程的执行。相反&#xff0c;激活是指恢复被挂起的流程实例的执行&#xff0c;使其能够继续执行后续步骤。 区别在于挂起流程实例后&#xff0c;流…...

探索前端动画之CSS魔法

引言 在现代网页设计中&#xff0c;动画已经成为了吸引用户注意力、提升用户体验的重要手段之一。而在前端开发中&#xff0c;CSS动画是一种常见且强大的实现方式。本篇博客将带你深入探索前端动画中的CSS魔法&#xff0c;通过清晰的思路和完整的示例代码&#xff0c;帮助你掌…...

Oracle数据库登录遇到密码临期问题

在oracle数据库中&#xff0c;如果设置了密码的有效期&#xff0c;则会出现密码临期提醒的问题&#xff0c;默认的密码有效期是180天&#xff0c;默认的密码提醒时间是15天&#xff08;此处缺乏官方文档支撑&#xff09;&#xff0c;在密码临近过期时&#xff0c;如果登录 Orac…...

LVGL学习笔记 30 - List(列表)

目录 1. 添加文本 2. 添加按钮 3. 事件 4. 修改样式 4.1 背景色 4.2 改变项的颜色 列表是一个垂直布局的矩形&#xff0c;可以向其中添加按钮和文本。 lv_obj_t* list1 lv_list_create(lv_scr_act());lv_obj_set_size(list1, 180, 220);lv_obj_center(list1); 部件包含&…...

Ubuntu下mysql安装及远程连接支持配置

1.安装 下载mysql-server&#xff08;必须加sudo&#xff09; sudo apt update sudo apt install mysql-server 查看mysql的状态 sudo service mysql status 通过如下命令开启mysql sudo service mysql start 2.配置 第一次安装mysql后&#xff0c;为root设置一个密码 …...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

学习一下用鸿蒙​​DevEco Studio HarmonyOS5实现百度地图

在鸿蒙&#xff08;HarmonyOS5&#xff09;中集成百度地图&#xff0c;可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API&#xff0c;可以构建跨设备的定位、导航和地图展示功能。 ​​1. 鸿蒙环境准备​​ ​​开发工具​​&#xff1a;下载安装 ​​De…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略&#xff08;地理位置/文件&#xff09; 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型&#xff0c;核心实现方式&#xff1a; 标准消息类型&#xff1a;直接使用 SDK 内置类型&#xff08;文件、图片等&#xff09;自…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...

2.3 物理层设备

在这个视频中&#xff0c;我们要学习工作在物理层的两种网络设备&#xff0c;分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间&#xff0c;需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质&#xff0c;假设A节点要给…...

使用VMware克隆功能快速搭建集群

自己搭建的虚拟机&#xff0c;后续不管是学习java还是大数据&#xff0c;都需要集群&#xff0c;java需要分布式的微服务&#xff0c;大数据Hadoop的计算集群&#xff0c;如果从头开始搭建虚拟机会比较费时费力&#xff0c;这里分享一下如何使用克隆功能快速搭建一个集群 先把…...

SpringBoot离线应用的5种实现方式

在当今高度依赖网络的环境中&#xff0c;离线应用的价值日益凸显。无论是在网络不稳定的区域运行的现场系统&#xff0c;还是需要在断网环境下使用的企业内部应用&#xff0c;具备离线工作能力已成为许多应用的必备特性。 本文将介绍基于SpringBoot实现离线应用的5种不同方式。…...