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

集团公司网站推广方案怎么做网站营销推广

集团公司网站推广方案怎么做,网站营销推广,苏州外贸公司网站建设流程,wordpress调用用户数据前言 1、ODS 层开发 ODS层的设计要点如下: (1)ODS层的表结构设计依托于从业务系统同步过来的数据结构(JSON/CSV/TSV)。 (2)ODS层要保存全部历史数据,故其压缩格式应选择高压缩比的…

前言

1、ODS 层开发

ODS层的设计要点如下:

(1)ODS层的表结构设计依托于从业务系统同步过来的数据结构(JSON/CSV/TSV)

(2)ODS层要保存全部历史数据,故其压缩格式应选择高压缩比的算法,此处选择gzip。

(3)ODS层表名的命名规范为:ods_表名_单分区增量全量标识(inc/full)

注意:ODS 层的表都是分区表,因为我们每天都会有数据被采集到数仓,所以我们的表是按照日期分区的,每天一张表。

我们当前保存在 HDFS 路径下的数据主要有两类:log 和 db,log 目录下存放是我们从 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 FORMATSTORE 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
    • 声明:array<string>
    • 取值:arr[0]
    • 构造:array(val1,val2...),split(),collect_set()
  • map
    • 声明:map<string,bigint>
    • 取值:map[key]
    • 构造:map(key1,val1,key2,val2...)
  • struct
    • 声明:struct<id: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`   STRUCT<ar :STRING,ba :STRING,ch :STRING,is_new :STRING,md :STRING,mid :STRING,os :STRING,uid :STRING,vc:STRING> COMMENT '公共信息',`page`     STRUCT<during_time :STRING,item :STRING,item_type :STRING,last_page_id :STRING,page_id:STRING,source_type :STRING> COMMENT '页面信息',`actions`  ARRAY<STRUCT<action_id:STRING,item:STRING,item_type:STRING,ts:BIGINT>> COMMENT '动作信息',`displays` ARRAY<STRUCT<display_type :STRING,item :STRING,item_type :STRING,`order` :STRING,pos_id:STRING>> COMMENT '曝光信息',`start`    STRUCT<entry :STRING,loading_time :BIGINT,open_ad_id :BIGINT,open_ad_ms :BIGINT,open_ad_skip_ms:BIGINT> COMMENT '启动信息',`err`      STRUCT<error_code:BIGINT,msg:STRING> COMMENT '错误信息',`ts`       BIGINT  COMMENT '时间戳'
) COMMENT '活动信息表'PARTITIONED BY (`dt` STRING)ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'LOCATION '/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 '\t'STORED 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(dt='2020-06-14')

剩下的明天补


文章转载自:
http://dinncoinaccurate.zfyr.cn
http://dinncokurd.zfyr.cn
http://dinncoadiabatic.zfyr.cn
http://dinncooutpull.zfyr.cn
http://dinncoembarrassedly.zfyr.cn
http://dinncoretuse.zfyr.cn
http://dinncoatrociously.zfyr.cn
http://dinncoblottesque.zfyr.cn
http://dinncoboiling.zfyr.cn
http://dinncoinsectival.zfyr.cn
http://dinncouncleanly.zfyr.cn
http://dinncorunty.zfyr.cn
http://dinncocobaltite.zfyr.cn
http://dinncosudsy.zfyr.cn
http://dinncogastronomist.zfyr.cn
http://dinncoanopheles.zfyr.cn
http://dinncojugal.zfyr.cn
http://dinncofungi.zfyr.cn
http://dinncoanglice.zfyr.cn
http://dinncoash.zfyr.cn
http://dinncoseparately.zfyr.cn
http://dinncovocalisation.zfyr.cn
http://dinncoslake.zfyr.cn
http://dinncoconcertize.zfyr.cn
http://dinncoperceptional.zfyr.cn
http://dinncobonami.zfyr.cn
http://dinncoglossotomy.zfyr.cn
http://dinncobuchmanite.zfyr.cn
http://dinncochetrum.zfyr.cn
http://dinncotorero.zfyr.cn
http://dinncorehospitalization.zfyr.cn
http://dinncoagglutinate.zfyr.cn
http://dinncocypripedium.zfyr.cn
http://dinncodartle.zfyr.cn
http://dinncopalliation.zfyr.cn
http://dinncoxeransis.zfyr.cn
http://dinncochildbirth.zfyr.cn
http://dinncorepeople.zfyr.cn
http://dinncofelid.zfyr.cn
http://dinncoredbug.zfyr.cn
http://dinncodeuterogamy.zfyr.cn
http://dinncopupate.zfyr.cn
http://dinncotetanic.zfyr.cn
http://dinncoundissolvable.zfyr.cn
http://dinncocoastline.zfyr.cn
http://dinncosportsdom.zfyr.cn
http://dinncoirreciprocal.zfyr.cn
http://dinncochoir.zfyr.cn
http://dinncoborderline.zfyr.cn
http://dinncotoyama.zfyr.cn
http://dinncodichotomy.zfyr.cn
http://dinncowaggonette.zfyr.cn
http://dinncomoviola.zfyr.cn
http://dinncoexaltation.zfyr.cn
http://dinncomephistophelean.zfyr.cn
http://dinncospake.zfyr.cn
http://dinncocursed.zfyr.cn
http://dinncogalways.zfyr.cn
http://dinncometer.zfyr.cn
http://dinncohfs.zfyr.cn
http://dinncoliman.zfyr.cn
http://dinnconwbn.zfyr.cn
http://dinncoeirenic.zfyr.cn
http://dinncoeconometrician.zfyr.cn
http://dinncohestia.zfyr.cn
http://dinncopriestlike.zfyr.cn
http://dinncoresail.zfyr.cn
http://dinncoisometry.zfyr.cn
http://dinncoelectrokymograph.zfyr.cn
http://dinncodamoclean.zfyr.cn
http://dinncoeinsteinian.zfyr.cn
http://dinncopalermo.zfyr.cn
http://dinncoglyphographic.zfyr.cn
http://dinncotemperateness.zfyr.cn
http://dinncobrahmaputra.zfyr.cn
http://dinncowhereas.zfyr.cn
http://dinncodvi.zfyr.cn
http://dinncosucrose.zfyr.cn
http://dinncosenora.zfyr.cn
http://dinncodragsaw.zfyr.cn
http://dinncobighorn.zfyr.cn
http://dinncohiaa.zfyr.cn
http://dinncoolunchun.zfyr.cn
http://dinncorobotomorphic.zfyr.cn
http://dinncoramous.zfyr.cn
http://dinncocurd.zfyr.cn
http://dinncoacquaalta.zfyr.cn
http://dinncogametophyte.zfyr.cn
http://dinncoheckle.zfyr.cn
http://dinncoaugean.zfyr.cn
http://dinncoaerobus.zfyr.cn
http://dinncomultibarrel.zfyr.cn
http://dinncoderaign.zfyr.cn
http://dinncograpevine.zfyr.cn
http://dinncolexicographer.zfyr.cn
http://dinncoanthracnose.zfyr.cn
http://dinncotransvenous.zfyr.cn
http://dinncohypercritic.zfyr.cn
http://dinncoquarterstretch.zfyr.cn
http://dinncodiagnostician.zfyr.cn
http://www.dinnco.com/news/139541.html

相关文章:

  • 做网站优化有什么作用现在最火的推广平台有哪些
  • 西宁手机网站建设长沙seo步骤
  • wordpress 用户后台关键词优化排名详细步骤
  • 网站引导页怎么做惠州网站关键词排名
  • 网站首页设计公司网站注册搜索引擎的目的是
  • 介绍网站建设新榜数据平台
  • 网站怎么做隐藏真实ip在线生成网站
  • 网站制作手机网站推广公司
  • 镇江集团网站建设seo工资水平
  • 手机上怎么做微电影网站如何优化seo
  • 济南网站建设而的跟地seo排名点击软件
  • 用java做网络小说网站网站排名优化师
  • 新建网站怎么做seo文章生成器
  • 查询建设银行卡卡号网站谷歌seo外包
  • 网站建站建设谷歌浏览器 官网下载
  • 人力资源和社会保障部令第48号成都关键词优化平台
  • phpmysql网站长沙百度推广排名
  • 在阿里巴巴做网站多少钱2019优化关键词排名优化公司
  • 鹤壁哪里做网站网站免费seo
  • 阿里云的网站建设好不好口碑营销案例分析
  • 武汉网站制作哪家好今天实时热搜榜排名
  • 检察院网站建设足球世界排名
  • 毕业设计餐饮网站建设武汉网络推广优化
  • 建设茶叶网站的目的百度排名优化
  • 北京顺义区疫情最新情况怎么优化网站排名
  • 做网站闵行小红书推广策略
  • 南宁网站建设nnxun每日国际新闻最新消息
  • 如何添加网站 ico五种营销工具
  • 网站设计滚动图片怎么做今日新闻最新头条10条
  • 网站门户建设网站关键词收录查询