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

qqip.探测网站建设易语言 做的网站

qqip.探测网站建设,易语言 做的网站,淄博周村网站建设方案,wordpress skype数据仓库介绍 1. 数据仓库概念 数据仓库概念创始人在《建立数据仓库》一书中对数据仓库的定义是#xff1a;数据仓库#xff08;Data Warehouse#xff09;是一个面向主题的#xff08;Subject Oriented#xff09;、数据集成的#xff08;Integrated#xff09;、相对…数据仓库介绍 1. 数据仓库概念 数据仓库概念创始人在《建立数据仓库》一书中对数据仓库的定义是数据仓库Data Warehouse是一个面向主题的Subject Oriented、数据集成的Integrated、相对稳定(非易失)的Non-Volatile、反映历史变化(时变)Time Variant的数据集合用于支持管理决策(Decision Making Support)。 数据仓库是决策支持系统dss的结构化数据环境如下图决策支持系统基于数据仓库进行联机分析处理 ( OLAP ) 。常用的技术有HDFS、HBase、Hive、SparkSql等。 数据采集, 将源数据采集到数据仓库基于数据仓库进行数据分析生成报表 2OLTP和OLAP区别 OLTPOn-Line Transaction Processing即联机事务处理也称为面向交易的处理过程其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理并在很短的时间内给出处理结果是对用户操作快速响应的方式之一比如ERP系统CRM系统互联网电商系统等这类系统的特点是事务操作频繁数据量小。 OLAPOn-Line Analytical Processing即联机分析处理有时也称为决策支持系统DSS支持复杂的分析操作侧重决策支持并且提供直观易懂的查询结果。这类系统的特点是没有事务性操作主要是查询操作数据量大。 数据仓库的特点 1 面向主题 数据库应用是以业务流程来划分应用程序和数据库比如ERPEnterprise Resource Planning包括进销存系统、人力资源管理系统、财务管理系统、仓库管理系统等进销存系统管理了进货、销售、存储等业务流程人力资源系统管理了员工的信息、待遇等相关信息。 数据仓库是以数据分析需求来对数据进行组织划分若干主题比如销售主题、员工主题、产品主题主题是一个抽象的概念可以理解为相关数据的分类、目录等通过销售主题可以进行销售相关的分析如年度销量排行、月度订单量统计等。 总之主题是以分析需求为导向来组织数据数据库应用系统是以业务流程为导向来组织数据注意主题中的数据是跨应用系统的。 2 数据集成 主题中的数据是跨应用系统的也就是说数据是分散在各各应用系统比如销售数据在进销存系统中有财务系统中也有为了进行销售分析需要将销售数据进行集成集成在销售主题中就可以从销售主题来进行数据分析。 3非易失 数据库应用系统是根据业务需求进行数据处理和存储而数据仓库是根据数据分析需求来进行数据存储数据仓库中的数据用于查询和分析为了保证数据分析的准确性和稳定性数据仓库中的数据一般是很少更新的会将历史快照保存下来。 4 时变 数据仓库中的数据存储的是历史数据历史数据是随时间变化的比如历年的销售数据都会存储到数据仓库中即使数据仓库中的数据很少更新但也不能保证没有变化如下需求 1会不断添加新数据 每年的销售数据会逐渐添加到数据仓库。 2删除过期数据 数据仓库中的数据会保存很长的时间5–10年但也有过期时间到过期 时间会删除过期 数据。 3对历史明细数据进行聚合 为了方便数据分析根据分析需求会将比较细粒度的数据进行数据聚合存储这也是时变的一种表现比如为了方便统计年度销售额会将销售记录按月进行统计统计年度销售额时只需要针对月度销售结果进行统计即可。 维度分析 维度分析介绍 对数据进行分析通常采取维度分析比如用户提出分析课程访问量的指标为了满足不同的分析需求可以从时间维度分析课程访问量分析每天、每小时的课程访问量也可以从课程维度来分析课程访问量分析每个课程、每个课程分类的访问量。指标与维度 要进行维度分析需要先理解两个术语指标和维度。 指标是衡量事务发展的标准也叫度量如价格销量等指标可以求和、求平均值等计算。 指标分为绝对数值和相对数值绝对数值反映具体的大小和多少如价格、销量、分数等相对数值反映一定的程度如及格率、购买率、涨幅等。 维度是事务的特征如颜色、区域、时间等可以根据不同的维度来对指标进行分析对比。比如根据区域维度来分析不同区域的产品销量根据时间来分析每个月产品的销量同一个产品销量指标从不同的维度分析会得出不同的结果。 维度分为定性维度和定量维度两种定性维度就是字符类型的特征比如区域维度包括全国各省份定量维度就是数值类型的特征如价格区间、销量区间等如价格区间维度分为0–100、100-1000两个区间可以按价格区间维度来对指标进行分析说到这里其实指标是可以转成维度的所转成的维度就是定量维度。 用具体的指标数值, 来度量不同的维度。x轴和y轴的关系。 1识别维度案例 在日常生活中我们从不同的角度看待事务会有不同的体会数据分析也如此比如一个在线教育的平台作为运营方会关注按时间段分析课程的访问量作为教育机构则关注单个课程的访问量都是课程访问量指标根据不同的维度去分析得到结果不同这就是维度分析。 比如按时间分析课程访问量时间维度是课程访问量的分析依据时间维度和业务中的课程访问量是对应的下表列出了课程访问量明细记录 2维度分层与分级 通常在分析结果中首先看到的是一个总数比如全年课程购买量然后会详细去看每个季度、每个月的课程购买量全年、季度、月这些属于时间维度的一个层次年、季度、月是这个层次的三个级别再比如按地区分析课程购买量全国、省、市、县属于地区维度的一个层次层次中共有四个级别。 相当于将维度进行细分。细分两层则维度包含一个层次多个级别。 细分三层则维度包含多个层次多个级别。 每个维度至少有一个层次且该层次至少有一个级别。下边将课程访问的各各维度定义层次和级别 3下钻与上卷 维度中有不同的层次每个层次可以有多个级别这样就可以根据多个维护层次和级别进行分析可以灵活获取高级别的汇总信息获取低级别的明细信息。 把获取高级别的汇总信息的过程叫上卷把获取低级别的明细信息的过程叫下钻 课程访问量分析时间维度有四个级别分别是年、月、天、小时现在我们某个级别分析每天的课程访问量比如按天分析课程访问量此时我们可以按小时下钻分析得出一天内每小时的课程访问量也可以按月上卷得到月度的课程访问量。 下钻维度 天、小时 上卷维度 年、月 数仓建模 1. 概述 数据仓库建模的方法常用的有两种三范式建模法、维度建模法三范式建模法主要是应用于传统的企业级数据仓库这类数据仓库通常使用关系型数据库实现是由Inmon提出的应用于自顶向下的数据仓库架构; 维度数据模型就是基于维度分析来创建模型是由Kimball提出应用于自下向上的数据仓库架构。本课程采用维度建模的方法。 维度建模简称DMDimensional modeling数据仓库大师Kimball的观点维度数据模型是一种趋向于支持最终用户对数据仓库进行查询的设计技术是围绕性能和易理解性构建的。维度模型是按照用户看待或分析数据的角度来组织数据。 维度建模的两个核心概念事实表和维度表。 2. 事实表 事实表记录了特定事件的数字化信息一般由数值型数字和指向维度表的外键组成。 事实表的设计依赖于业务系统事实表的数据就是业务系统的指标数据。数据分析的实质就是基于事实表开展的计算操作。 3. 维度表 维度是指观察数据的角度一般是一个名词比如对于销售金额这个事实我们可以从销售时间、销售产品、销售店铺、购买顾客等多个维度来观察分析。 维度表的记录数比事实表少但是每条记录可能会包含很多字段。 4. 常见的建模方法 1 星型模型 是一种多维的数据关系。一个事实表为中心多个维度表环绕周围。 一个星型模型中可以有一个或多个事实表每个事实表可以引用任意数量的维度表。 星型模型将业务流程分为事实和维度。事实是对业务的度量是定量的数据比如价格、销售数量、距离、速度、质量等。维度是对事实数据属性的描述比如日期、产品、客户、地理位置等。 2 雪花模型 当有一个或多个维表没有直接连接到事实表上而是通过其他维表连接到事实表上时就像多个雪花连接在一起故称雪花模型。雪花模型是对星型模型的扩展它对星型模型的维表进一步层次化原有的各维表可能被扩展为小的事实表形成一些局部的 层次 区域这些被分解的表都连接到主维度表而不是事实表。 层次化的影响 层次化的过程是将维度表中重复度比较高的字段组成一个新表所以层次化不可避免增加了表的数量减少了数据的存储空间提高了数据更新的效率。但是查询时就需要连接更多的表。 总结雪花模型中一个维度被规范化成多个关联的表星型模型中每个维度由一个单一的维度表所表示。 3星座模型 多个事实表多个维度表事实表之间可以相互关联维度表之间一般通过事实表进行关联特殊情况下维度表也可以互相关联。 渐变维SCD 1什么是渐变维 维度可以根据变化剧烈程度主要分为无变化维度和变化维度。例如一个人的相关信息身份证号、姓名和性别等信息数据属于不变的部分而婚姻状态、工作经历、工作单位和培训经历等属于可能会变化的字段。 大多数维度数据随时间的迁移是缓慢变化的。比如增加了新的产品或者产品的ID号码修改了或者产品增加了一个新的属性此时维度表就会被修改或者增加新的记录行。这样在设计维度和使用维度的过程中就要考虑到缓慢变化维度数据的处理。 缓慢渐变维即维度中的属性可能会随着时间发生改变比如包含用户住址Address的DimCustomer维度用户的住址可能会发生改变进而影响业务统计精度DimCustomer维度就是缓慢渐变维SCD。 2解决问题的方法 1SCD1缓慢渐变类型1 通过更新维度记录直接覆盖已存在的值。不维护记录的历史。一般用于修改错误的数据即历史数据就是错误数据除此没有他用。 在数据仓库中我们可以保持业务数据和数据仓库中的数据始终处于一致。可以在 Customer 维度中使用来自业务数据库中的 Business Key - CustomerID 来追踪业务数据的变化一旦发生变化那么就将旧的业务数据覆盖重写。 DW 中的记录根据业务数据库中的 CustomerID 获取了最新的 City 信息直接更新到 DW 中。 2SCD2缓慢渐变类型2 在源数据发生变化时给维度记录建立一个新的“版本”记录从而维护维度历史。SCD2不删除、不修改已存在的数据。SCD2也叫拉链表。 在数据仓库中有很多需求场景会对历史数据进行汇总和分析因此会尽可能的维护来自业务系统中的历史数据使系统能够真正捕获到这种历史数据的变化。 3SCD3缓慢渐变类型3 实际上SCD1 and 2 可以满足大多数需求了但是仍然有其它的解决方案比如说 SCD3。 SCD3希望只维护更少的历史记录。 比如说把要维护的历史字段新增一列然后每次只更新 Current Column 和 Previous Column。这样只保存了最近两次的历史记录历史数据都在同一行数据中。但是如果要维护的字段比较多就比较麻烦因为要更多的 Current 和 Previous 字段。所以 SCD3 用的还是没有 SCD1 和 SCD2 那么普遍。它只适用于数据的存储空间不足并且用户接受有限历史数据的情况。 数据仓库分层 1数据分层的好处 1.清晰数据结构每一个数据分层都有它的作用域和职责在使用表的时候能更方便地定位和理解。 2.复杂问题简单化将一个复杂的任务分解成多个步骤来完成每一层解决特定的问题。 3.便于维护当数据出现问题之后可以不用修复所有的数据只需要从有问题的步骤开始修复。 4.减少重复开发规范数据分层开发一些通用的中间层数据能够减少重复开发的工作量。 5.高性能数据仓库的构建将大大缩短获取信息的时间数据仓库作为数据的集合所有的信息都可以从数据仓库直接获取尤其对于海量数据的关联查询和复杂查询所以数据仓库分层有利于实现复杂的统计需求提高数据统计的效率。 数据分层 1 ODS数据源 此层数据无任何更改直接沿用外围系统数据结构和数据不对外开放为临时存储层是接口数据的临时存储区域为后一步的数据处理做准备。 .2 DW数据仓库 2.1 DWD明细层 明细层DWDData Warehouse Detail存储明细数据此数据是最细粒度的事实数据。该层一般保持和ODS层一样的数据粒度并且提供一定的数据质量保证。 2.2 DWB基础数据层 数据降维后生成的明细宽表作为中间数据使用。一般只保留一段周期内的有效数据。(一般是一年 2.3 DWS服务数据层 按照主题划分的日统计宽表基于DWB上的基础数据整合汇总成分析某一个主题域的服务数据。 3 DM数据集市 数据集市层主要职责是建设宽表模型、汇总表模型比如用户主题宽表、销售主题宽表等。主要作用是支撑数据分析查询以及支持应用所需数据。 4 RPT报表应用 同ADS层、APP层。 根据报表、专题分析的需求而计算生成的个性化数据。 Sqoop 1 Sqoop介绍 Sqoop是Apache下的顶级项目用来将Hadoop和关系型数据库中的数据相互转移可以将一个关系型数据库例如MySQLOraclePostgreSQL等中的数据导入到Hadoop的HDFS中也可以将HDFS的数据导出到关系型数据库中。目前在各个公司应用广泛且发展前景比较乐观。其特点在于 1)专门为Hadoop而生随Hadoop版本更新支持程度好且原本即是从CDH版本孵化出来的开源项目支持CDH的各个版本号。 2)它支持多种关系型数据库比如mysql、oracle、postgresql等。 3)可以高效、可控的利用资源。 4)可以自动的完成数据映射和转换。 5)大部分企业还在使用sqoop1版本sqoop1能满足公司的基本需求。 6)自带的辅助工具比较丰富如sqoop-import、sqoop-list-databases、sqoop-list-tables等。 导入数据MySQLOracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统 导出数据从Hadoop的HDFS、HIVE中导出数据到关系数据库mysql等 2,为什么选择Sqoop 我们常用的ETL工具有Sqoop、Kettle、Nifi。 知行教育大数据平台ETL的数据量较大但是数据来源的类型简单mysql 1.Kettle虽然功能较完善但当处理大数据量的时候瓶颈问题比较突出不适合此项目 2.NiFi的功能强大且支持大数据量操作但NiFi集群是独立于Hadoop集群的需要独立的服务器来支撑强大也就意味着有上手门槛学习难度大用人成本高 3.Sqoop专为关系型数据库和Hadoop之间的ETL而生支持海量数据符合项目的需求且操作简单门槛低因此选择Sqoop作为ETL工具。 3,sqoop1与sqoop2架构对比 1,Sqoop1以Client客户端的形式存在和运行。没有任务时是没有进程存在的。 2,sqoop2是以B/S服务器的形式去运行的始终会有Server服务端进程在运行。 4. Sqoop抽取的两种方式 对于Mysql数据的采集通常使用Sqoop来进行。 通过Sqoop将关系型数据库数据到Hive有两种方式一种是原生Sqoop API一种是使用HCatalog API。两种方式略有不同。 HCatalog方式与Sqoop方式的参数基本都是相同只是个别不一样都是可以实现Sqoop将数据抽取到Hive。 2,区别 ①数据格式支持 Sqoop方式支持的数据格式较少HCatalog支持的数据格式多包括RCFile, ORCFile, CSV, JSON和SequenceFile等格式。 ②数据覆盖 Sqoop方式允许数据覆盖HCatalog不允许数据覆盖每次都只是追加。 ③字段名 Sqoop方式比较随意不要求源表和目标表字段相同(字段名称和个数都可以不相同)它抽取的方式是将字段按顺序插入比如目标表有3个字段源表有一个字段它会将数据插入到Hive表的第一个字段其余字段为NULL。但是HCatalog不同源表和目标表字段名需要相同字段个数可以不相等如果字段名不同抽取数据的时候会报NullPointerException错误。HCatalog抽取数据时会将字段对应到相同字段名的字段上哪怕字段个数不相等。 5Sqoop方式 sqoop import \ --hive-import \ --connect jdbc:mysql://localhost:3306/test \ --username root \ --password 123456789 \ --query select order_no from driver_action where \$CONDITIONS \ --hive-database test \ --hive-table driver_action \ --hive-partition-key pt \ --hive-partition-value 20190901 \ --null-string \ --null-non-string \ --num-mappers 1 \ --target-dir /tmp/test \ --delete-target-dir6, HCatalog方式 sqoop import \ --connect jdbc:mysql://localhost:3306/test\ --username root \ --password root \ --query SELECT order_no FROM driver_action WHERE \$CONDITIONS \ --hcatalog-database test \ --hcatalog-table driver_action \ --hcatalog-partition-keys pt \ --hcatalog-partition-values 20200104 \ --hcatalog-storage-stanza stored as orcfile tblproperties (orc.compressSNAPPY) \ --num-mappers 1sqoop import \ --connect jdbc:mysql://localhost:3306/test\ --username root \ --password root \ --query SELECT order_no_src as order_no_target FROM driver_action WHERE \$CONDITIONS \ --hcatalog-database test \ --hcatalog-table driver_action \ --hcatalog-partition-keys pt \ --hcatalog-partition-values 20200104 \ --hcatalog-storage-stanza stored as orc tblproperties (orc.compressSNAPPY) \ --num-mappers 1项目选型 因为项目采用的是ORC File文件格式sqoop原始方式并不支持因此使用HCatalog方式来进行数据的导入导出。 1,Sqoop的数据导入 “导入工具”导入单个表从RDBMS到HDFS。表中的每一行被视为HDFS的记录。所有记录都存储为文本文件的文本数据或者Avro、sequence文件等二进制数据 2,基础命令 列出所有数据库 /usr/bin/sqoop help 命令行查看帮助 /usr/bin/sqoop list-databases --help 列出主机所有的数据库 /usr/bin/sqoop list-databases --connect jdbc:mysql://192.168.88.80:3306/ --username root --password 123456 查看某一个数据库下面的所有数据表 /usr/bin/sqoop list-tables --connect jdbc:mysql://192.168.88.80:3306/hive --username root --password 123456 3导入数据库表数据到HDFS /usr/bin/sqoop import --connect jdbc:mysql://192.168.88.80:3306/test --password 123456 --username root --table emp --m 1 注意mysql地址必须为服务器IP不能是localhost或者机器名。4导入到HDFS指定目录 在导入表数据到HDFS时使用Sqoop导入工具我们可以指定目标目录。 使用参数 --target-dir来指定导出目的地 使用参数--delete-target-dir来判断导出目录是否已存在如果存在就删掉 /usr/bin/sqoop import --connect jdbc:mysql://192.168.88.80:3306/test --username root --password 123456 --delete-target-dir --table emp --target-dir /sqoop/emp --m 1 查看导出的数据 hdfs dfs -text /sqoop/emp/part-m-000005 导入到hdfs指定目录并指定字段之间的分隔符 /usr/bin/sqoop import --connect jdbc:mysql://192.168.88.80:3306/test --username root --password 123456 --delete-target-dir --table emp --target-dir /sqoop/emp2 --m 1 --fields-terminated-by \t 查看文件内容 hdfs dfs -text /sqoop/emp2/part-m-000006导入关系表到HIVE /usr/bin/sqoop import \ --connect jdbc:mysql://192.168.88.80:3306/test \ --username root \ --password 123456 \ --table emp \ --fields-terminated-by \t \ --hcatalog-database sqooptohive \ --hcatalog-table emp_hive \ -m 17条件部分导入 where语句 /usr/bin/sqoop import \ --connect jdbc:mysql://192.168.88.80:3306/test \ --username root --password 123456 --table emp_add \ --target-dir /sqoop/emp_add -m 1 --delete-target-dir \ --where city sec-badquery语句 /usr/bin/sqoop import \ --connect jdbc:mysql://192.168.88.80:3306/test --username root --password 123456 \ --delete-target-dir -m 1 \ --query select phno from emp_conn where 11 and $CONDITIONS \ --target-dir /sqoop/emp_conn8 增量导入数据到Hive表 /usr/bin/sqoop import \ --connect jdbc:mysql://192.168.88.80:3306/test --username root --password 123456 \ --query select * from emp where id1203 and \$CONDITIONS \ --fields-terminated-by \t \ --hcatalog-database sqooptohive \ --hcatalog-table emp_hive \ -m 1Sqoop数据导出 通过export来实现数据的导出将hive的数据导出到mysql当中去 /usr/bin/sqoop export \ --connect jdbc:mysql://192.168.88.80:3306/test --username root --password 123456 \ --table emp_out \ --hcatalog-database sqooptohive \ --hcatalog-table emp_hive \ -m 1
http://www.sadfv.cn/news/356037/

相关文章:

  • 婚介网站怎么做公司介绍ppt模板免费
  • pc网站如何转为手机版网站广告如何做
  • 金汇网站建设项目符号在哪里设置
  • 如何做高端网站广州英铭网站建设
  • 一般建设网站需要多少预算深圳网络推广营销
  • 国外炫酷网站贵阳网络推广公司哪家强
  • 泰安专业网站开发公司公司用wordpress
  • 自助单页网站建材建设行业网站
  • 大型网站一般用什么语言做的章丘网站定制
  • 不会网站维护可以做吗seo免费课程视频
  • 做简历的网站有哪些中国建设银行网站个人网上银行
  • 资源库网站开发公司介绍网站怎么做的
  • 怎么看网站是服务器还是虚拟主机做网站图片大小
  • 手机微网站平台jplayer wordpress
  • 微信企业网站源码下载做网站前期构架图
  • 文化传播公司网站模板随手app广告怎么关闭
  • 免费学习资源网站网站连接微信
  • 深圳网站 商城制作网站建设珠海 新盈科技公司
  • 河池环江网站建设常州交通建设管理有限公司网站
  • 自己可以做公司网站吗南昌定制网站建设
  • 网站开发软硬件wordpress categories
  • 湖南做网站 地址磐石网络广告设计培训学校有哪些
  • 网站排名代做忘记wordpress
  • 企业微信第三方应用开发穆棱seo
  • 做网站用备案吗今天十堰头条新闻
  • 请写出网站建设前期需要做的准备吴忠市建设局网站
  • 网站编辑信息怎么做网络系统管理工作的主要内容
  • 国内专业网站制作如何自己设计广告图
  • 邢台市政建设集团网站网站建设案例精粹
  • 关于建立网站的申请如何设计服装网站首页