大数据相关
文章平均质量分 61
主要为大数据相关组件,如hadoop、hive、spark、SparkStreaming、flink、hbase、Phoenix等
浮云6363
这个作者很懒,什么都没留下…
展开
-
【GaussDB】查看表和数据库信息
查询表是否做过表分析,执行如下命令会返回每个表最近一次做analyze的时间,没有返回时间的则表示没有做过analyze。使用系统表pg_tables查询数据库所有表的信息。使用函数pg_get_tabledef查询表定义。通过系统表pg_database查询数据库列表。查询public下的表做表分析的时间。查询表的总大小(包含表的索引和数据)查询系统中所有表占用空间大小排行。查询表的数据大小(不包括索引)原创 2023-06-07 11:05:01 · 11327 阅读 · 0 评论 -
【flink sql】kafka连接器
R/W 列定义了一个元数据是可读的(R)还是可写的(W)。只读列必须声明为 VIRTUAL 以在 INSERT INTO 操作中排除它们。连接器可以读出消息格式的元数据。格式元数据的配置键以 ‘value.’ 作为前缀。Kafka 连接器提供从 Kafka topic 中消费和写入数据的能力。以下的连接器元数据可以在表定义中通过元数据列的形式获取。这篇博客聊聊怎么通过flink sql连接kafka。如果元数据名称和字段名称是一致的,可以省略。原创 2023-03-23 11:43:49 · 2689 阅读 · 1 评论 -
【flink sql】函数使用
如果数字 1 或整数 2 为 NULL,则返回 NULL。返回一个字符串,该字符串将位置 INT1 中的 INT2(默认情况下为 STRING2 的长度)替换为位置 INT1 中的 STRING2。返回字符串1在字符串2的位置,位置从1开始,如果不在字符串2中,返回0,如果出现多次,返回第一次出现的位置。去除字符串2中两边包含字符串1,如果只有一个字符串参数,则去除字符串两边的空格。将字符串1中包含字符串2的用字符串3替换,支持正则表达式。如果没有第二个参数,则返回四舍五入的整数。不应该是0.5的吗?原创 2023-03-20 20:53:36 · 1169 阅读 · 0 评论 -
【flink sql】创建表
框架会定期发出所生成的最大的 watermark ,如果当前 watermark 仍然与前一个 watermark 相同、为空、或返回的 watermark 的值小于最后一个发出的 watermark ,则新的 watermark 不会被发出。在 CREATE TABLE 语句中,创建主键会修改列的 nullable 属性,主键声明的列默认都是非 Nullable 的。主键可以和列的定义一起声明,也可以独立声明为表的限制属性,不管是哪种方式,主键都不可以重复定义,否则 Flink 会报错。原创 2023-03-21 20:05:43 · 3036 阅读 · 0 评论 -
【kafka报错】java.lang.NoSuchMethodError: org.apache.zookeeper.ZooKeeper.<init>
启动kafka报错:java.lang.NoSuchMethodError: org.apache.zookeeper.ZooKeeper.(Ljava/lang/String;ILorg/apache/zookeeper/Watcher;Lorg/apache/zookeeper/client/ZKClientConfig;)V原创 2022-10-07 20:11:58 · 1583 阅读 · 2 评论 -
【PostgreSQL】PostgreSQL的upsert功能(insert on conflict do)的用法
PostgreSQL 的 upsert 功能:当记录不存在时,执行插入;否则,进行更新。原创 2022-07-08 21:12:21 · 4262 阅读 · 0 评论 -
【presto】行转列和列转行
行转列数据源:select * from test.tmp_row_to_col;568810800017635002 210100026066367206568810800017635002 210100026070369019568810800017635002 210100026038823395568810800017635002 210100026038921817568811800170738001 210100016048730468568811800170738001原创 2022-05-03 16:59:48 · 8961 阅读 · 1 评论 -
【presto】url函数
提取函数URL方法用于从HTTP URLs(或者是任何满足RFC 2396标准的有效URIs)中提取相应的信息。URL方法支持如下的语法:[protocol:][//host[:port]][path][?query][#fragment]被从URLs中提取出来的部分,不会包括URI的语法分隔符(如:或者?)url_extract_fragment(url) → varchar从URL返回fragment标识符select url_extract_fragment('https://blog.c原创 2022-05-03 16:16:26 · 1108 阅读 · 0 评论 -
【presto】json函数
转换为JSON支持由BOOLEAN, TINYINT, SMALLINT, INTEGER, BIGINT, REAL, DOUBLE或VARCHAR转换。当ARRAY中的元素是以上类型时支持转换。当map的key的类型是VARCHAR,value类型是以上类型时支持转换。SELECT CAST(NULL AS JSON); -- NULLSELECT CAST(1 AS JSON); -- JSON '1'SELECT CAST(9223372036854775807 AS JSON); --原创 2022-05-03 15:06:39 · 7960 阅读 · 0 评论 -
合并本地或hdfs上的小文件
众所周知,HDFS中过多的小文件,会给NameNode造成很大的压力,所谓的小文件,是指远远小于文件块大小的文件。在使用HDFS的过程中,应尽量避免生成过多的小文件。本文以TextFile为例,介绍一下从本地–>HDFS、HDFS–>本地、以及HDFS–>HDFS的文件上传下载移动过程中,对小文件的合并方法。将本地的小文件合并,上传到HDFS假设存放在本地的数据由很多个小文件组成,需要上传到HDFS。一般的做法是在本地使用脚本、程序先把小文件合并后再上传。其实没有必要,HDFS中原创 2022-04-30 15:46:37 · 2236 阅读 · 0 评论 -
hive的craete table as
Create Table As Select (CTAS)hive中还可以通过一个 create-table-as-select (CTAS) 语句中的查询结果来创建和填充表。 CTAS 创建的表是原子的,这意味着在填充所有查询结果之前,其他用户看不到该表。 因此,其他用户要么看到包含完整查询结果的表,要么根本看不到该表。CTAS 中有两个部分,SELECT 部分可以是 HiveQL 支持的任何 SELECT 语句。 CTAS 的 CREATE 部分从 SELECT 部分获取结果模式,并使用其他表属性(原创 2022-04-22 23:39:45 · 5289 阅读 · 0 评论 -
误删hive表如何恢复
CDH环境,已配置回收站,配置回收站默认日期保存为一天失误将hive表数据删除,删除的数据移动到了回收站中,位于/user/hive/.Trash/删除日期XXX/hive/warehouse数据库名.db/表名 先查看表名文件中是否是删除的表hdfs dfs -ls /user/hive/.Trash/Currerrt/user/hive/warehouse/数据库据库名.db | grep 表名对于有分区的表,额外执行msck repair table 数据库.表名对于该表有权限管理原创 2022-04-05 21:32:29 · 2352 阅读 · 0 评论 -
GaussDB通过merge into高效更新导入数据
GaussDB(DWS)支持的MERGE INTO功能,可以同时进行大数据量的更新与插入。对于数据仓库是一项非常重要的技术。转载 2022-04-05 14:22:03 · 3187 阅读 · 0 评论 -
【presto】函数大全
presto函数大全原创 2022-03-27 22:04:07 · 20150 阅读 · 5 评论 -
【presto】时间函数汇总
目录获取当前日期:current_date()获取当前时间:current_time()获取当前日期和时间:current_timestamp()获取当前日期和时间:now()字符串转时间戳:cast(string, timestamp)字符串转时间戳:date_parse(string, fromat)bigint转时间戳时间戳转biging时间戳格式化: format_datetime(timestamp,format)时间戳取年月日字符串转年月日bigint转年月日时间间隔:date_diff(uni原创 2022-03-17 22:59:46 · 21815 阅读 · 0 评论 -
网易云音乐面向用户增长的数据治理实践
大数据时代,用户的行为深刻影响着企业产品的变革与创新,如何追溯和分析用户行为,沉淀数字资产,并利用它实现精准化营销和产品价值提升,需要更多的探索与实践。本次分享的题目为用户分群数据化运营智能决策引擎数据开发实践,将结合网易云音乐产品实例,阐述数仓侧如何从0到1开展用户数据产品的开发与治理,实现用户增长。转载 2022-02-20 11:42:01 · 874 阅读 · 0 评论 -
快手如何搭建一个好的数据指标体系?
一个好的数据指标体系可以助力业务快速的解构业务、理解业务、发现业务问题,快速定位原因,并且找到最合适的解决方案。因此学习搭建一个好的数据指标体系是数据助力业务决策的灵魂。转载 2022-02-20 11:35:26 · 654 阅读 · 0 评论 -
hadoop启动和停止脚本
#!/bin/bashHADOOP_HOME=/opt/modules/hadoop-2.7.3cd ${HADOOP_HOME}#start namenode./sbin/hadoop-daemon.sh start namenodeif [ $? -eq 0 ]; then echo start namenode success!! #start datanode ./sbin/hadoop-daemon.sh start datanode if [ $? -eq 0原创 2021-11-21 10:29:52 · 1184 阅读 · 0 评论 -
hive修改表路径
hive分为内部表和外部表,两种表修改路径方式不一样。内部表设置新的路径alter table tb_table1 set location 'hdfs://cluster/hive/warehouse/test.db/tb_table2移动表的文件hdfs dfs -mv /hive/warehouse/test.db/tb_table1 /hive/warehouse/test.db/tb_table2外部表因为外部表删除表并不会删除文件,所以可以先删除表drop table tab原创 2021-10-31 16:54:19 · 5704 阅读 · 0 评论 -
hadoop 异常 问题解决:NameNode is still loading. Redirecting to the Startup Progress page
环境:apache hadoop 3.2.2 、机器发生重启,集群异常关闭现象:重启hdfs和yarn服务,底层namenode和datanode都没有报错,但是在namenode的web ui上报错这种一般发生在一个namenode挂掉之后,隔一段时间重启,那么这个重启namenode需要加载到最新的fsimage,这种情况就是正常的,根据fsimage大小,加载的时间长短也是不一样的。如果加载很慢,修改hadoop-env.sh,对其参数进行内存调优# 扩大一下2个参数的jvm使用内存,原来原创 2021-09-05 17:22:17 · 2701 阅读 · 0 评论 -
windows子系统(wsl)Ubuntu18.4Hadoop的50070访问不了
在Windows子系统(wsl)Ubuntu18.4中安装了Hadoop3.2.2版本,然后启动那么namenode和datanode,通过jps发现服务正常,但是访问namenode的web界面却访问不了。首先我们来看看子系统用的是哪个ip再看看Windows的ip,可以看出两个ip是一致的,所以子系统可以访问外网修改core-site.xmlwe文件:<configuration> <!--指定hdfs的唯一入口,以及namenode的地址--> <pr原创 2021-09-05 17:14:37 · 752 阅读 · 0 评论 -
浅谈企业数据中台建设思路
迎各位关注我的个人微信公众号:赶令,将会定期更新大数据相关知识及个人心得虽然数据中台已经提出很久了,但很多中小型企业还是停留在传统数据库或者简单的数据仓库阶段。随着DT时代互联网、智能设备及其他信息技术的发展,数据爆发式增长,各种结构化、半结构化、非结构化数据不断的产生。在新环境下,数据应用呈现出数据来源多、业务变化快、系统耦合多、应用深度深、大数据组件复杂多样等特征。如何将这些数据进行有序、有结构地组织和存储是企业面临的一个挑战。那么基于以上特征,改如何构建数据中台?可以从方法论、产品+工具、原创 2021-09-05 00:51:46 · 1182 阅读 · 0 评论 -
电商商品指标分析
商品是电商系统中最重要的业务模型,某种程度上说,电商就是围绕于商品进行的,不管在电商供应链、电商营销、还是推荐,商品都有其非常重要的地位。那么我们该如何评估商品带来的价值及反馈给运营及时调整策略呢?首先我们简单了解下电商商品流程流向,从流程中不难看出,整体都是围绕着商品(以下出现的专业词语在上篇文章中已经解释:浅谈电商商品数模建设)。简单了解完商品流向后,我们可以从以下维度及指标去衡量商品的情况:维度的选取用户、门店、供应商、订单等指标分类商品总数指标spu数:spu资料库中的数量(可原创 2021-08-21 23:41:24 · 2818 阅读 · 0 评论 -
浅谈电商商品数模建设
目录一、专业术语解释1、 商品2、 SPU3、 SKU4、 SPU、SKU和商品的关系二、商品数据模型1、 概念模型2、 物理模型最近在做电商商品的数仓建设,初次相遇电商商品,很多专业术语、概念都是一脸茫然的,本文简单介绍下商品中常见专业术语的含义及数据模型。欢迎关注微信公众号:赶令一、专业术语解释1、 商品说起商品模型,我们不得不先搞清楚一个概念,什么是商品?结合百度百科,我们可以认为:商品是为了出售而生产的劳动成果。例如我们今天所购买的XXX项目的票,XXX手机品牌,我们都可以认为是商品。商原创 2021-08-16 23:12:13 · 1058 阅读 · 0 评论 -
hadoop之参数mapreduce.job.reduce.slowstart.completedmaps
大家在执行 hive sql 走mr引擎时有没有发现日志打印信息, map 还没到100% reduce 就开始了。这是由于mapred-site.xml配置文件中有一个参数mapreduce.job.reduce.slowstart.completedmaps,这个参数可以控制当 map 任务执行到哪个比例的时候就可以开始为 reduce task 申请资源。Hadoop官网默认配置为0.05,那么map task在执行到5%的时候就开始为reduce进行申请资源,开始执行reduce操作,red原创 2021-05-30 22:04:59 · 739 阅读 · 1 评论 -
hive窗口函数order by不同引擎对于null的排序规则
目录发现问题分析问题解决问题发现问题今天发现一个问题,在Hive中使用窗口函数对数据进行分组排序时,使用mr引擎和使用presto引擎得到的结果不一致,在这里把发现和解决问题的过程记录一下。1. 首先模拟数据:创建表create table demo_over_order( room_id string comment '直播间ID' ,user_id string comment '用户ID' ,in_time string comment '进入时间' ,o转载 2021-05-30 21:15:36 · 1661 阅读 · 0 评论 -
Hadoop优化有哪些方面
Hadoop的优化可以从以下方面进行:减少HDFS上的小文件的影响影响 NameNode 的寿命,因为文件元数据存储在 NameNode 的内存中影响计算引擎的任务数量,比如每个小的文件都会生成一个 Map 任务数据输入小文件处理:合并小文件:对小文件进行归档(Har)、自定义 Inputformat 将小文件存储成SequenceFile 文件采用 ConbinFileInputFormat 来作为输入,解决输入端大量小文件场景对于大量小文件 Job,可以开启 JVM 重用原创 2021-05-30 20:52:30 · 1210 阅读 · 0 评论 -
【shell】在shell中对HDFS文件及目录的判断
在shell中判断文件是否存在可以通过-f $fileName进行判断,判断文件夹是否存在可以通过-d $directory进行判断,如以下脚本:#!/bin/shfile="/opt/cdh-5.7.6/hadoop-2.6.0-cdh5.7.6/stop_all.sh"if [ ! -f "$file" ]; then echo "文件不存在!"else echo "文件存在!"fidirectory="/opt/cdh-5.7.6/hadoop-2.6.0-cdh5.7.6/原创 2021-03-20 21:20:00 · 1576 阅读 · 0 评论 -
【spark】spark sql中grouping sets新增纬度怎么使得分组id不改变
最近在项目中用spark sql做离线开发遇到许多纬度组合去重统计的需求,第一想法就是用grouping sets进行纬度组合,grouping_id()做为分组id实现需求。spark sql的grouping sets和hive的区别主要在于分组id计算方式不一样:spark sql中用grouping_id()获取分组id,而hive通过grouping__id(两个_)获取分组idspark sql分组id是纬度被选中则为0,没被选中则为1,而hive则刚好相反,选中为1,没被选中为0举例原创 2021-03-17 21:44:35 · 1583 阅读 · 2 评论 -
【hive】hive如何将Jan 1, 2021 12:40:46 PM时间格式转换为指定格式
在开发过程中,遇到类似于Jan 1, 2021 12:40:46 PM,Jan 1, 2021 9:40:46 AM,需要转换为yyyy-MM-dd HH:mm:ss格式,特记录下。思路:先通过unix_timestamp函数将以上格式转换为时间戳再通过from_unixtime转换为指定的时间格式需要注意的: 首先要判断后缀是PM还是AM,如果是AM直接按上面两步转换即可,如果是PM且小时为12时,直接按上面两步转换即可,如果不为12时,在转换为时间戳后加上12*3600(即加12小时),再进原创 2021-03-08 23:44:14 · 2331 阅读 · 1 评论 -
【Flink入门】Flink自定义Source读取MySQL数据
在前一篇博客中已经简单介绍了Flink读取Kafka数据并通过Demo进行实践,这篇博客简单介绍Flink通过自定义Source读取MySQL数据并通过Demo进行演练。首先我们来简单了解下SourceFunction 接口,它是所有 stream source 的根接口,它继承自一个标记接口(空接口)Function。在IDEA中打开SourceFunction,按下图右击鼠标,选择Diagrams–>show DiagramsSourceFunction 定义了两个接口方法:1、run原创 2021-02-25 20:30:41 · 5463 阅读 · 0 评论 -
【Flink入门】Flink读取Kafka数据Demo
flink算子操作主要分为三大部分:source(数据读取)、transform(数据处理)、sink(数据输出),这篇博客简单聊聊flink读取kafka数据在控制台打印的Demo。废话不多说,执行上代码演示。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/原创 2021-02-23 17:01:53 · 3595 阅读 · 0 评论 -
Flink error: No implicits found for parameter evidence$9: TypeInformation[String]
在IDEA中调用addSource编译时报错如下:原因:没有显示导包org.apache.flink.api.scala._解决办法:显示导包即可import org.apache.flink.streaming.api.scala._原创 2021-01-19 14:52:36 · 401 阅读 · 0 评论 -
【Flink入门】Flink流处理WordCount
目录先引入pom.xml文件flink流处理代码IDEA执行前面已经学习了flink的批处理WordCount,现在来学习下flink的流处理WordCount,其实和批处理差不多,区别在于获取执行环境方法和接收的数据方式不一样。批处理通过ExecutionEnvironment.getExecutionEnvironment方法获取批处理执行环境,再通过readTextFile("inputParth")方法获取文件,流处理通过StreamExecutionEnvironment.getExecuti原创 2021-01-14 14:41:47 · 337 阅读 · 0 评论 -
flink报错:No new data sinks have been defined since the last execution
初学flink,在IDEA上编写WordCount代码运行报错如下:Exception in thread "main" java.lang.RuntimeException: No new data sinks have been defined since the last execution. The last execution refers to the latest call to 'execute()', 'count()', 'collect()', or 'print()'. at o原创 2021-01-13 17:06:09 · 1523 阅读 · 0 评论 -
【Flink入门】Flink离线批处理WordCount
flink离线批处理WordCount代码如下:package com.fuyun.flink// 因为很多算子Java和Scala名称都一样,必须要显示导入scala所有包告知使用Scala语言的算子,不然会报错import org.apache.flink.api.scala._object WordCount { def main(args: Array[String]): Unit = { // 定义输入输出文件路径 val input = "E:\\IDEAwo原创 2021-01-13 16:52:21 · 783 阅读 · 0 评论 -
【Flink入门】Flink通过sh启动集群报错
flink通过sh ${file}启动和停止集群集群会报错如下:[fuyun@bigdata-training tools]$ sh /opt/modules/flink-1.12.0/bin/stop-cluster.sh /opt/modules/flink-1.12.0/bin/config.sh: line 32: syntax error near unexpected token `<'/opt/modules/flink-1.12.0/bin/config.sh: line 32:原创 2021-01-11 15:55:37 · 945 阅读 · 2 评论 -
【Flink入门】centos上flink安装部署(standalone模式)
目录基本概念安装部署下载flink安装包单机 Standalone 的方式运行 Flink常用配置介绍基本概念运行 Flink 应用其实非常简单,但是在运行 Flink 应用之前,还是有必要了解 Flink 运行时的各个组件,因为这涉及到 Flink 应用的配置问题。图 1 所示,这是用户用 DataStream API 写的一个数据处理程序。可以看到,在一个 DAG 图中不能被 Chain 在一起的 Operator 会被分隔到不同的 Task 中,也就是说 Task 是 Flink 中资源调度的最原创 2021-01-11 15:17:38 · 2252 阅读 · 0 评论 -
【hive】hive仓库之拉链表实现
在数仓建设中,经常会遇到需要查找某条数据的历史状态及状态改变的时间点,比如查找某个用户历史所有的变更记录,在业务数据库中是会有变更和物理删除,而用户id是主键,所以只会记录用户最新的记录,如果只是全量同步业务数据库中的用户表,在最新分区中无法查到用户变更记录,如果把全量数据每天快照全部保留,会浪费很多空间,并且查询效率低,逻辑也复杂。做成拉链表既能节省空间,也能快速查询出某个用户所有变更记录和变更类型、变更日期。此方案比我以前博客的方案优化点:数据仓库之拉链表的更新方法此方案支持数据重跑,即某天数据发现原创 2020-12-14 23:01:39 · 995 阅读 · 0 评论 -
【spark】Spark读取HBase表(newAPIHadoopRDD方式)
hbase依赖于zookeeper和hadoop,spark读取hbase数据需要连接到zookeeper,通过zookeeper访问hbase:第一种是将hbase-site.xml文件加入classpath第二种是在HBaseConfiguration实例中设置如果不设置,默认连接的是localhost:2181会报错:connection refused本文使用的是第二种方式。maven中需要引入依赖<?xml version="1.0" encoding="UTF-8"?>原创 2020-10-11 20:27:35 · 3327 阅读 · 0 评论