1. Prosto的可视化界面

  在使用presto引擎的时候,可以通过可视化界面,来查看各项指标,地址通常是http://127.0.0.1:8080/ui/ 

    

hivesql 查出来的是科学计数_数据

 2. excel中数字超过一定的位数,默认会使用科学计数法显示,如何取消?

      a. 首先将格式设置为文本格式

      b. 然后粘贴的时候,以文本的形式粘贴,即可。

(注: 当字段内容包含逗号时,应该选择文件存为.txt(制表符分隔)模式,否则会错误切割列。建表DDL应加上    FIELDS TERMINATED BY '\t'    LINES TERMINATED BY '\n' 来声明分隔符和换行符。)

     常用的方法: 

                       第一种:  excel导入文本数据源(注意 分隔符的选用 和 列都是text格式 )

                       第二种:  就是上面a,b步骤,然后分列,后续步骤和第一种一样……

 3.  sql中null问题(有些数据库中值为空,显示的仍然是null,需要注意)

     eg: 例如我想找出 name不是 “张三” 的所有信息

             sql:  select * from class where name <> '张三'  

     上面的sql是有问题的,name为空的就不能检索出来,需要加上 name is null 的语句,才能过滤出来,虽然是小知识点,还是要记录一下。

4. Presto注册函数

1. 检查jar内容
 jar tf hive-exec-2.1.1-cdh6.1.0.jar|grep UDFJson
2. 把jar包上传到hdfs的目录中
hdfs dfs -put  /data/app/services/temp_function/hive-exec-2.1.1-cdh6.1.0.jar    /user/udf/hive-udf.jar
3. 注册函数
 create function if not exists get_json_object(String,String) returns String location "/user/cloudera/lib/hive-udf.jar" SYMBOL="org.apache.hadoop.hive.ql.udf.UDFJson";
4.  查看函数
show functions;

5. 名词解释

 adhoc-data : 特设的的数据, 会用于大数据平台的域名    https://zh.wikipedia.org/wiki/Ad_hoc

               mis :   管理信息系统   

6.  对账遇到的问题

   在对账或者取数的过程中,会碰到一个在我看来比较常见的问题,就是从各个维度去做数据汇总的时候,会发现数据对不上,差的也不多,就是对不上。第一次遇到的时候,就是一点一点的找问题,大致会有如下几类:

    1.  字段间不对等

        理论上是对等的,但会因为历史原因,导致一对多,等等(这个可以测试看看,找业务或技术确认下)

   2.  表之间连接有问题

      字段关联的时候,可能字段内容为空,导致关联不上(可以进一步通过left join 表,字段 is null 找出来,看看是否这个问题)

  3. 可能会丢掉条件

     这个导致两个sql不对等,也会对不上,这个应该很少吧?

   就像写代码一样,一直debug下去,问题肯定会找到的。

 

7. 关于数据同步的小问题

之前用kettle 同步数据的时候,会出现一个问题,就是业务那面更改数据的时候,类似于update_time字段不更新,导致数仓这面数据也不会更新(增量是用这个字段)。这个也是个坑,需要对表进行标准化,规范化。

(例如基础字段肯定要有,包括但不限于 id,插入时间,更新时间,数据状态等)

备注: 事实表最好每天都有个分区或者把历史数据进行归档,方便追溯历史数据状态。

 

8. 查看端口与应用

经常会用到,记一下。

第一步:查看12442端口的占用情况   

hivesql 查出来的是科学计数_字段_02

netstat -ano|findstr 12442

第二步:查看任务

hivesql 查出来的是科学计数_ci_03

tasklist|findstr 8452

第三步:关闭进程

taskkill /f /pid 8452

9. sql小结

 1. alter table A engine=InnoDB命令来重建表

 2.  

# like 创建表结构
use database;
create table tablename1 
like  
tablename;


# as  复制表
use database;
create table tablename1 
as   
select *  from tablename ;

 

10. 同步问题

1. sqoop同步的时候,一直报下面的错

hivesql 查出来的是科学计数_ci_04

2. 查一下shell脚本

hivesql 查出来的是科学计数_数据_05

3. 经过一段时间排查,是因为脚本把空格读进去,导致sql查不出表名,jobs就为空了

hivesql 查出来的是科学计数_hivesql 查出来的是科学计数_06

4. 慢慢排查,缩小排查范围,问题会找出来的。

 

11. Excel内容合并(将多个Excel表中的sheet合并到同一个Excel中,并以原表名为sheet名)

'功能:把多个excel工作簿的第一个sheet工作表合并到一个excel工作簿的多个sheet工作表,新工作表的名称等于原工作簿的名称
Sub Books2Sheets()
 '定义对话框变量
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
'新建一个工作簿
Dim newwb As Workbook
Set newwb = Workbooks.Add
With fd
If .Show = -1 Then
'定义单个文件变量
Dim vrtSelectedItem As Variant
'定义循环变量
Dim i As Integer
i = 1
'开始文件检索
For Each vrtSelectedItem In .SelectedItems
'打开被合并工作簿
Dim tempwb As Workbook
Set tempwb = Workbooks.Open(vrtSelectedItem)
'复制工作表
tempwb.Worksheets(1).Copy Before:=newwb.Worksheets(i)
'把新工作簿的工作表名字改成被复制工作簿文件名,这儿应用于xls文件,即Excel97-2003的文件,如果是Excel2007,需要改成xlsx
newwb.Worksheets(i).Name = VBA.Replace(tempwb.Name, ".xlsx", "")
'关闭被合并工作簿
tempwb.Close SaveChanges:=False
i = i + 1
Next vrtSelectedItem
End If
End With
Set fd = Nothing
End Sub

12. Sql疑问

select id
     , SUM(ID) over(ORDER BY ID range BETWEEN 1 preceding AND 2 following) as range_sum 
from tmp_20210321_2

 

hivesql 查出来的是科学计数_ci_07

 

这个id是string类型的,换成int类型,红框内的数据就对

hivesql 查出来的是科学计数_hivesql 查出来的是科学计数_08

 

原因:  1. current row | UNBOUNDED PRECEDING | [num] PRECEDING AND UNBOUNDED FOLLOWING | [num] FOLLOWING| current row

num] PRECEDING AND [num] FOLLOWING

              要是数值型的,string类型无法进行加减!

13. sublime块模式(ctrl+v在linux的vim可以这样操作,在sub由于被粘贴占用,可以用ctrl+shift+l代替)

  • 按住字母v,进入可视化模式(注意:  每行前面的空格要是一致的,否则块模式会乱)

    

hivesql 查出来的是科学计数_hivesql 查出来的是科学计数_09

  • 键入ctrl+shift+l (L小写),shift+ i ,这个时候块模式移动到句首,输入即可
  • Esc+A  或者  shift+$ 移到行尾,输入即可

 

14. apache下载

-- 修改文件名就行
https://downloads.apache.org/hive/

 

15. linux命令

find ../lib/  -name  "mysql*"

16. Excel问题

 

hivesql 查出来的是科学计数_hivesql 查出来的是科学计数_10

 

怎么将这部分数据格式调为 常规呢,然后统计呢?

1. 找一块对等地方,将格式设为常规

2. 将图片中的数据,复制出来,然后在粘贴进1找的地方即可

hivesql 查出来的是科学计数_字段_11

 

17. Excel求累计百分比

笔数举例

1. 求出总笔数

hivesql 查出来的是科学计数_ci_12

 2. 算出第一行的占比(第一行笔数/总笔数)

hivesql 查出来的是科学计数_ci_13

3. 算出第二行占比(第一行占比 + 第二行笔数/总笔数)   总笔数行I310要锁定

hivesql 查出来的是科学计数_字段_14

4. 最后,直接使用填充功能就可以将累计百分比计算好了

 

18. 数据问题

商户<> 自主商户  + 外包商户  大概率是关联的问题

 

19.合并列值 将一列的多个值合并成一行

oralce写法:

select WM_CONCAT(A.title) as citys from tmpcity A

sql server写法:

select stuff((select ','+A.title from tmpCity A FOR xml PATH('')), 1, 1, '') as citys

mysql写法:

select GROUP_CONCAT(A.title) as citys from tmpcity A;      --默认的逗号分隔
select GROUP_CONCAT(A.title SEPARATOR  ' ') as citys from tmpcity A;   --用空格分隔

 

20. zk和hdfs可视化软件 

zk:     ZooInspector

hdfs:  HDFS Explorer