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

山东环保行业网站开发设计机构网站

山东环保行业网站开发,设计机构网站,对外宣传及网站建设文件稿,为客户创建网站必须前言 1、ODS 层开发 ODS层的设计要点如下#xff1a; #xff08;1#xff09;ODS层的表结构设计依托于从业务系统同步过来的数据结构#xff08;JSON/CSV/TSV#xff09;。 #xff08;2#xff09;ODS层要保存全部历史数据#xff0c;故其压缩格式应选择高压缩比的…前言 1、ODS 层开发 ODS层的设计要点如下 1ODS层的表结构设计依托于从业务系统同步过来的数据结构JSON/CSV/TSV。 2ODS层要保存全部历史数据故其压缩格式应选择高压缩比的算法此处选择gzip。 3ODS层表名的命名规范为ods_表名_单分区增量全量标识inc/full。 注意ODS 层的表都是分区表因为我们每天都会有数据被采集到数仓所以我们的表是按照日期分区的每天一张表。 我们当前保存在 HDFS 路径下的数据主要有两类log 和 dblog 目录下存放是我们从 Flume 传过来的用户行为日志文件我们已经用 gzip 压缩过了可以通过下面的命令查看 hadoop fs -cat /origin_data/gmall/log/topic_log/2020-06-14/* | zcat 可以看到我们的格式是一个 JSON 格式那我们要建表的话就得考虑怎么把 JSON 格式的数据映射到我们的 Hive 表中了。 对于 db 目录下的文件主要有两类DataX 同步过来的以 full 为目录后缀的全量业务数据和 Maxwell 同步过来的首日全量数据和以 inc 为目录后缀的增量业务数据。 hadoop fs -cat /origin_data/gmall/db/activity_rule_full/2020-06-14/* | zcat 可以看到 DataX 传输过来的文件是 .tsv 文件我们将来只要拿 \t 分隔即可。 hadoop fs -cat /origin_data/gmall/db/comment_info_inc/2020-06-14/* | zcat 可以看到拿 Maxwell 同步过来的数据和 Flume 一样都是 JSON 格式的。  1.1、用户行为日志表 1.1.1、ROW FORMAT 和 STORE AS  打开 Hive 官网 - LanguageManual - DDL - JSON ​ 查看 Hive 3.x 版本支持的通过解析 JSON 映射表的语法 CREATE TABLE my_table(a string, b bigint, ...) ROW FORMAT SERDE org.apache.hadoop.hive.serde2.JsonSerDe -- 声明行的格式 STORED AS TEXTFILE; -- 声明怎么解析文件 这里的 ROW FORMAT 和 STORE AS 都是 Hive 建表是所必须指定的只不过 Hive 帮我们简化了这部分语法 ROW FORMAT 用 DELIMITED 关键字表示对文件中的每个字段按照特定分割符进行分割用 SERDE 关键字来指定 Hive 内置的 SERDE 或者 用户自定义的 SERDE。 STORE AS 用 STORED AS 简写文件格式来指定 InputFormat 和 OutputFormat 默比如 TextFileInputFormat 和 TextFileOutputFormat 可以用 STORE AS TEXTFILE 来表示。 Hive SerDe ​ Hive 的 ROW FORMAT 的 SERDE 属性指定了 Hive 的序列化器和反序列化器映射 HDFS 文件时使用反序列化器进行解析写出文件时使用序列化器来封装数据。 1.1.2、复杂数据类型 对于用户行为日志它的存储格式是 json 格式那我们就需要把它的每个字段映射到我们 Hive 表中。首先回顾一下 Hive 的三种复杂类型 array 声明arraystring取值arr[0]构造array(val1,val2...)split()collect_set()map 声明mapstring,bigint取值map[key]构造map(key1,val1,key2,val2...)struct 声明structid:int,name:strnig取值struct.id构造named_struct(name1,val1,name2,val2...) 对于上面的 common 字段它虽然是键值对格式但是我们不能使用 map 因为 map 的 value 是同一数据类型而我们这里的 common 字段不同键的值有的是 int 有的是 string。所以我们使用 struct。 对于 displays 字段由于它存储的是数组类型然后数组嵌套键值对所以我们需要使用 array(struct) 的嵌套类型。 1.1.3、设计日志表 DROP TABLE IF EXISTS ods_log_inc; CREATE EXTERNAL TABLE ods_log_inc (common STRUCTar :STRING,ba :STRING,ch :STRING,is_new :STRING,md :STRING,mid :STRING,os :STRING,uid :STRING,vc:STRING COMMENT 公共信息,page STRUCTduring_time :STRING,item :STRING,item_type :STRING,last_page_id :STRING,page_id:STRING,source_type :STRING COMMENT 页面信息,actions ARRAYSTRUCTaction_id:STRING,item:STRING,item_type:STRING,ts:BIGINT COMMENT 动作信息,displays ARRAYSTRUCTdisplay_type :STRING,item :STRING,item_type :STRING,order :STRING,pos_id:STRING COMMENT 曝光信息,start STRUCTentry :STRING,loading_time :BIGINT,open_ad_id :BIGINT,open_ad_ms :BIGINT,open_ad_skip_ms:BIGINT COMMENT 启动信息,err STRUCTerror_code:BIGINT,msg:STRING COMMENT 错误信息,ts BIGINT COMMENT 时间戳 ) COMMENT 活动信息表PARTITIONED BY (dt STRING)ROW FORMAT SERDE org.apache.hadoop.hive.serde2.JsonSerDeLOCATION /warehouse/gmall/ods/ods_log_inc/;注意我们数仓建的基本都是外部表防止误删数据 gzip 和 bzip2 格式的文件可以直接以 textfile 的格式来 load 而不需要在建表时指定压缩格式其实就是指定 STORE AS 。 但是其他压缩格式是不行的比如 LZO 压缩的话必须指定 STORE AS 的 InputFormat 和 OutputFormat CREATE EXTERNAL TABLE IF NOT EXISTS hive_table_name (column_1 datatype_1......column_N datatype_N)PARTITIONED BY (partition_col_1 datatype_1 ....col_P datatype_P)ROW FORMAT DELIMITED FIELDS TERMINATED BY \tSTORED AS INPUTFORMAT \com.hadoop.mapred.DeprecatedLzoTextInputFormat\OUTPUTFORMAT \org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat\; 1.1.4、装载脚本 我们的日志数据每天都要 load 到一张新的分区表中。 load data inpath /origin_data/gmall/log/topic_log/2020-06-14 into table ods_log_inc partition(dt2020-06-14)剩下的明天补
http://www.dnsts.com.cn/news/43449.html

相关文章:

  • 前端移动网站开发下列关于网站开发中网页上传和
  • 网站申请页面怎么做网站网站推广
  • 用阳寿做交易的网站新余百度网站建设
  • 想找人做网站怎么了解哪个网站可以帮助做数学题
  • 泰安建设厅网站wordpress 常用查询
  • dede网站源码wordpress下载器插件
  • 高端的赣州网站建设企业建立自己的网站
  • 做殡葬名片的网站温州做网站公司
  • 平台类网站营销方案帮企业建设网站销售
  • 余姚网站建设62752762wordpress feedsky
  • 新手可以自己建网站吗无锡seo网站管理
  • 做衬衫的作业网站做图库网站需要多少钱
  • 蓝科企业建站免费发seo外链平台
  • 高端建站设计外贸是什么工作
  • php网站制作 青岛东莞seo按天计费
  • 招投标 网站建设 山西先网站开发后软件开发好
  • 重庆cms建站系统物流网站大全
  • 八面通网站建设wordpress国内开发大神
  • 网站推广工作流程图wordpress 博客改成文章
  • 湛江网站seo外包麻将app软件开发
  • 用asp做网站需要准备什么怎样使用模板建立网站
  • 口腔医院网站开发wordpress使用mysqli
  • 人力社保网站建设的意义酒厂网站源码
  • 广州市建设招标管理办公室网站品牌网站建设有哪些
  • 漯河网站建设公司阿里云服务器搭建网站
  • 应用软件设计过程seo推广培训资料
  • logo设计网站官网衡水电商网站建设价格
  • 网站建设与运营 试题屏蔽收索引擎抓取网站
  • 哪里网站用vue.js做的罗湖网站建设费用
  • 设计logo网站免费下载泰安推广工作室