1. 什么是ETL,ETL都是怎么实现的?

  ETL中文全称为:抽取.转换.加载  extract   transform  load

  ETL是传数仓开发中的一个重要环节。它指的是,ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。

  ETL是数据仓库中的非常重要的一环。它是承前启后的必要一步

  在传统数仓领域中,这项工序,大部分公司都是通过使用一些成熟的ETL软件来实现的,这些软件的使用,都不需要手工编程,只需要在软件的界面上,做一些参数配置,拖拽操作,就可以生成数据抽取任务并能够对这些任务进行“调度”。也可以写spark程序来进行ETL。

比较流行的ETL软件如下:

2. 什么是分析主题?各行业的数仓开发中都有哪些分析主题?(到神策上找)

  主题:数据分析按它所围绕的“主题”做的逻辑分类

3. 什么是事实和维度?维表有什么用?维表设计模型都有哪些?

  (1)事实:现实发生的某件事

      维度:衡量事实的一个角度

  (2)事实表通过关联维表可以使得自身数据的粒度更加小,更加有利于数据的分析

  (3)星型模型,雪花模型,星座模型

4. 数仓开发为什么要分层管理?你们公司都分了哪些层?各层的特性是什么?

(1)空间换时间,让大量运算任务可以复用;把复杂问题简单化;便于解耦“底层业务的变化”对上层的影响

(2)我们公司分了4层,分别为:

  • ODS层(Operation Data Store):操作数据层,也叫贴源层,其对应着外部数据源ETL到数仓体系之后的表
  • DWD层(Data Warehouse Detail):数仓明细层,一般是对ODS层的表按主题进行加工和划分;本层中表记录的还是明细数据
  • DWS层(Data WareHouse Servce):数仓汇总层(数据服务层)
  • ADS层(Application Data Servce):应用服务层,应用层,主要是一些结果报表

5. 埋点日志是怎么生成?埋点日志有哪几类?又是怎么采集的?

(1)当用户产生一些用户行为时,在业务程序中的埋点代码就能收集这些用户行为,然后埋点代码就向装有nginx的日志服务器发送请求,然后将日志(用户行为)记录到对应的日志服务器中

(2)移动端埋点日志(包括APP,H5,微信小程序等)

    PC端埋点日志

(3)使用flume进行采集,具体流程见下图

 5.1 衍生问题:

(1)讲下flume的高可用

  flume高可用只是针对级联agent中的第二级而言的,第一级的agent是没有高可用的

(2)若第一级的agent坏掉了该怎么办?

  找故障=====>重启机器

(3)若是agent坏了并且很久才被发现,这是就会造成数据积压,对实时计算有很大的影响,这该怎么解决?

  没办法解决,只能在开始启动agent时,就写一个监控脚本,若该agent挂掉之后就去自动重启它

(4)假如日志数据的产生大于采集数据的速度,造成日志数据积压,这该怎么解决?

  级联agent,第二级agent采用负载均衡,若是第一级的agent处(日志服务器上) 的网络带宽有限,造成数据积压,这是只能增加网络带宽或者是增加日志服务器的台数。

6. maven是干嘛的?父子工程有啥特点?什么叫传递依赖?怎么控制排除传递依赖?

(1)管理jar包

(2)依赖继承:父工程中引入的依赖,所有子工程都会自动继承;依赖管理:父工程通过dependencyManagement声明依赖的相关属性(版本),但并不会真正引入依赖,子工程在引入dependencyManagement所声明的依赖时,不需要指定版本,直接继承dependencyManagement中声明的版本!

(3)A依赖B,B依赖C则我们称C为A的传递依赖

(4)在maven中使用<exclusions>标签,期内不使用<exclusion>标签

7. 版本管理(svn)有啥用?它的大体机制是什么?

(1)通过版本管理,我们可以轻易的退回先前代码的版本,若新版本开发出现很大的问题就可以回到以前的版本

(2)其分为客户端和服务端,客户端往服务端每提交一次代码时,服务端就会在自身的版本库记下一个版本,当客户端因为开发需要需要回到某个历史版本,则可以直接回滚到该版本

8. 现在流行的版本管理系统叫什么?它的机制与传统的svn有啥差别?

(1)git

(2)区别:见此博客(https://www.cnblogs.com/mtl-key/p/6902627.html

9. git和github、gitlab、gitee是什么关系?

  git是一个版本管理系统,而github、gitlab、gitee则是不同开发者开发的git服务器,作用都是一样的

数仓day02的更多相关文章

  1. 数仓1.4 |业务数仓搭建| 拉链表| Presto

    电商业务及数据结构 SKU库存量,剩余多少SPU商品聚集的最小单位,,,这类商品的抽象,提取公共的内容 订单表:周期性状态变化(order_info) id 订单编号 total_amount 订单金 ...

  2. 数仓1.1 分层| ODS& DWD层

    数仓分层 ODS:Operation Data Store原始数据 DWD(数据清洗/DWI) data warehouse detail数据明细详情,去除空值,脏数据,超过极限范围的明细解析具体表 ...

  3. 在HUE中将文本格式的数据导入hive数仓中

    今天有一个需求需要将一份文档形式的hft与fdd的城市关系关系的数据导入到hive数仓中,之前没有在hue中进行这项操作(上家都是通过xshell登录堡垒机直接连服务器进行操作的),特此记录一下. - ...

  4. 使用Oozie中workflow的定时任务重跑hive数仓表的历史分期调度

    在数仓和BI系统的开发和使用过程中会经常出现需要重跑数仓中某些或一段时间内的分区数据,原因可能是:1.数据统计和计算逻辑/口径调整,2.发现之前的埋点数据收集出现错误或者埋点出现错误,3.业务数据库出 ...

  5. Hive 数仓中常见的日期转换操作

    (1)Hive 数仓中一些常用的dt与日期的转换操作 下面总结了自己工作中经常用到的一些日期转换,这类日期转换经常用于报表的时间粒度和统计周期的控制中 日期变换: (1)dt转日期 to_date(f ...

  6. 【云+社区极客说】新一代大数据技术:构建PB级云端数仓实践

    本文来自腾讯云技术沙龙,本次沙龙主题为构建PB级云端数仓实践 在现代社会中,随着4G和光纤网络的普及.智能终端更清晰的摄像头和更灵敏的传感器.物联网设备入网等等而产生的数据,导致了PB级储存的需求加大 ...

  7. HAWQ取代传统数仓实践(十九)——OLAP

    一.OLAP简介 1. 概念 OLAP是英文是On-Line Analytical Processing的缩写,意为联机分析处理.此概念最早由关系数据库之父E.F.Codd于1993年提出.OLAP允 ...

  8. HAWQ取代传统数仓实践(十六)——事实表技术之迟到的事实

    一.迟到的事实简介 数据仓库通常建立于一种理想的假设情况下,这就是数据仓库的度量(事实记录)与度量的环境(维度记录)同时出现在数据仓库中.当同时拥有事实记录和正确的当前维度行时,就能够从容地首先维护维 ...

  9. HAWQ取代传统数仓实践(十三)——事实表技术之周期快照

    一.周期快照简介 周期快照事实表中的每行汇总了发生在某一标准周期,如一天.一周或一月的多个度量.其粒度是周期性的时间段,而不是单个事务.周期快照事实表通常包含许多数据的总计,因为任何与事实表时间范围一 ...

随机推荐

  1. poj 3041 Asteroids(最小点覆盖)

    题意: N*N的矩阵,有K个敌人,坐标分别是(C1,C1),.....,(Rk,Ck). 有一个武器,每发射一次,可消掉某行或某列上的所有的敌人. 问消灭所有敌人最少需要多少发. 思路: 二分建图:左 ...

  2. 用python写一个自动化盲注脚本

    前言 当我们进行SQL注入攻击时,当发现无法进行union注入或者报错等注入,那么,就需要考虑盲注了,当我们进行盲注时,需要通过页面的反馈(布尔盲注)或者相应时间(时间盲注),来一个字符一个字符的进行 ...

  3. Java连接redis之Jedis使用

    测试联通 创建Maven工程,引入依赖 <dependency> <groupId>redis.clients</groupId> <artifactId&g ...

  4. 第2章-6 求交错序列前N项和 (15分)

    第2章-6 求交错序列前N项和 (15分) 本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+- 的前N项之和. 输入格式: 输入在一行中给出一个正整数N. 输出格式: 在 ...

  5. js--数组的 Array.of() 和 Array.from() 方法的使用总结

    前言 JavaScript 中数组的本质是一个对象,它存在的 length 属性值随数组元素的长度变化,但是开发中经常会遇到拥有 length 属性和若干索引属性的对象,被称为类数组对象,类数组对象和 ...

  6. Integer.valueOf()和Integer.parseInt()区别

    他们返回类型的不同是最大的原因. static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行分析. static Integer valueOf(int i) ...

  7. PLSQL 删表 恢复

    1.查看你删除的是哪张表(SQL 中的时间是删表时的时间  (我删表的时间 大概是:2019-08-16 08:47:00   之后 )):       select * from user_recy ...

  8. PHP高级特性-反射Reflection以及Factory工厂设计模式的结合使用[代码实例]

    PHP高级特性-反射以及工厂设计模式的结合使用 [结合 Laravel-Admin 代码实例讲解] 利用反射来实现工厂模式的生产而无需创建特定的工厂类 本文地址http://janrs.com/?p= ...

  9. <C#任务导引教程>练习一

    //1,定位显示ASCI码值为30到119的字符using System;class Program{    static void Main()    {        int i, n = 0;  ...

  10. 多线程合集(二)---异步的那些事,async和await原理抛析

    引言 在c#中,异步的async和await原理,以及运行机制,可以说是老生常谈,经常在各个群里看到有在讨论这个的,而且网上看到的也只是对异步状态机的一些讲解,甚至很多人说异步状态机的时候,他们说的是 ...