ClickHouse进阶(十三):Clickhouse数据字典-3-文件数据源及Mysql数据源

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容!

🏡个人主页:含各种IT体系技术,IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客

📌订阅:拥抱独家专题,你的订阅将点燃我的创作热情!

👍点赞:赞同优秀创作,你的点赞是对我创作最大的认可!

⭐️ 收藏:收藏原创博文,让我们一起打造IT界的荣耀与辉煌!

✏️评论:留下心声墨迹,你的评论将是我努力改进的方向!

 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频


目录

​​​​​​​1. 文件数据源

2. MySQL数据源


​​​​​​​1. 文件数据源

clickhouse中的字典还可以映射本地文件数据。操作如下:

1) 创建本地csv文件

在本地创建的csv文件需要放在“/var/lib/clickhouse/user_files”路径下,在此目录下创建organization.csv文件,写入如下内容:

1,"a0001","研发部"2,"a0002","产品部"3,"a0003","数据部"4,"a0004","测试部"5,"a0005","运维部"6,"a0006","规划部"7,"a0007","市场部"

2)创建字典表

#在clickhouse中创建字典表create dictionary org_dic(id UInt64,code String,name String)primary key idSOURCE(FILE(path '/var/lib/clickhouse/user_files/organization.csv' format 'CSV'))LAYOUT(FLAT())LIFETIME(30);注意:SOURCE(FILE(path '文件名',' 文件格式')),文件格式支持CSV和TabSeparated。#查询使用字典表node1 :) select dictGet('dic_test_db.org_dic','name',toUInt64(2)) as name;┌─name───┐│ 产品部 │└────────┘

2. MySQL数据源

clickhouse中还支持从MySQL中提取数据到字典表。具体操作如下:

1)在MySQL中创建表organization并插入数据

#在mysql中创建库、表及插入数据mysql> create database mytest;mysql> use mytest;mysql> create table organization(id int,code varchar(255),name varchar(255));#插入数据insert into mytest.organization values(1,"a0001","org1");insert into mytest.organization values(2,"a0002","org2");insert into mytest.organization values(3,"a0003","org3");insert into mytest.organization values(4,"a0004","org4");insert into mytest.organization values(5,"a0005","org5");insert into mytest.organization values(6,"a0006","org6");insert into mytest.organization values(7,"a0007","org7");#查询数据mysql> select * from organization;

2)在clickhouse中创建字典表

#在clickhouse中创建flat字典表create dictionary org_dic2(id UInt64,code String,name String)primary key idSOURCE(MYSQL(port 3306user 'root'password '123456'host 'node2'db 'mytest'table 'organization'))LAYOUT(FLAT())LIFETIME(MIN 3 MAX 5);#使用字典表node1 :)  select dictGet('dic_test_db.org_dic2','name',toUInt64(2)) as name;┌─name─┐│ org2 │└──────┘

注意:clickhouse字典表除了支持将MySQL、clickhouse表作为数据来源,还可以从MongoDB中读取数据。


👨‍💻如需博文中的资料请私信博主。


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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【洛谷算法题】P5704-字母转换【入门1顺序结构】

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5704-字母转换【入门1顺序结构】🌏题目描述🌏输入格式&a…

入门人工智能 ——自然语言处理介绍,并使用 Python 进行文本情感分析(5)

入门人工智能 ——自然语言处理介绍,并使用 Python 进行文本情感分析(5)) 入门人工智能 ——自然语言处理介绍,并使用 Python 进行文本情感分析介绍自然语言处理的挑战NLP的基本任务NLP的基本技术NLP的应用领域 使用 P…

2023数模国赛C 题 蔬菜类商品的自动定价与补货决策-完整版创新多思路详解(含代码)

题目简评:看下来C题是三道题目里简单一些的,考察的点比较综合,偏数据分析。涉及预测模型和运筹优化(线性规划),还设了一问开放型问题,适合新手入门,发挥空间大。 题目分析与思路: 背景&#x…

数据库服务器是什么意思?数据库服务器有哪些?

数据库服务器是什么意思?现在市场上有很多的服务器的类型,比如数据库服务器,但是很多人对数据库服务器是什么意思?数据库服务器有哪些并不是很熟悉,那么,聚名企服为您详解一下。 一:数据库服务器是什么意思 数据库服…

想要精通算法和SQL的成长之路 - 相交链表

想要精通算法和SQL的成长之路 - 相交链表 前言一. 相交链表(双指针) 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 相交链表(双指针) 原题链接 思路如下: 1.我们假设 headA链表的长度为 a。headB链表的长度为b…

多线程之基础篇(一)

一、Thread类 1、线程的创建 大家都熟知创建单个线程的三种方式,通过继承Thread类创建线程并重写该类的run()方法;通过实现Runnable接口创建线程一样要重写run()方法;以上的两个run()方法都是线程的执行体;第三,使用…

2024年java面试--mysql(2)

系列文章目录 2024年java面试(一)–spring篇2024年java面试(二)–spring篇2024年java面试(三)–spring篇2024年java面试(四)–spring篇2024年java面试–集合篇2024年java面试–redi…

计算机毕设之基于Hadoop+springboot的物品租赁系统的设计与实现(前后端分离,内含源码+文档+教程)

该系统基于Hadoop平台,利用Java语言、MySQL数据库,结合目前流行的 B/S架构,将物品租赁管理的各个方面都集中到数据库中,以便于用户的需要。在确保系统稳定的前提下,能够实现多功能模块的设计和应用。该系统由管理员功能…

虚拟机Ubuntu操作系统最基本终端命令(安装包+详细解释+详细演示)

虚拟机及乌班图(Ubuntu操作系统) 提示:大家需要软件的可以直接在此链接中提取 链接:https://pan.baidu.com/s/1_4VHGTlXjIuVhBINeOuBCA 提取码:nd0c 文章目录 虚拟机及乌班图(Ubuntu操作系统)终…

E5061B/是德科技keysight E5061B网络分析仪

181/2461/8938产品概述 是德科技E5061B(安捷伦)网络分析仪在从5 Hz到3 GHz的宽频率范围内提供通用的高性能网络分析。E5061B提供ENA系列常见的出色RF性能,还提供全面的LF(低频)网络测量能力;包括内置1 Mohm输入的增益相位测试端口。E5061B从低频到高频的…

根据站点经纬度画全球分布图python

已知几个站点的经纬度,要求画出在全球的分布。 import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl import cartopy.crs as ccrs import cartopy.feature as cfeature from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter f…

Map集合

Map中常见的API Map<键值对类型&#xff0c; 键值对对象类型> put&#xff08;K key , V value&#xff09;【可以有返回值】 添加/覆盖元素 在添加数据的时候&#xff0c;如果键不存在&#xff0c;那么直接将键对对象添加到map集合当中 在添加数据的时候&#xff0c…