




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MySQL关系数据库的安装与配置主讲:李强任务描述Hive元数据存储在MySQL数据库中,因此在部署Hive组件前需要首先在Linux系统下安装MySQL数据库,并进行MySQL字符集、安全初始化、远程访问权限等相关配置。任务分析Linux(CentOS7)服务器会自动安装MariaDB,MariaDB数据库管理系统是MySQL的一个分支。由于我们采取本地模式安装Hive,需要自己安装MySQL,所以需要先查询并卸载MariaDB。另外在Linux安装MySQL数据库的方式有很多种,可以直接安装安装包进行相关的配置,也可以选择在线安装。本手册采用安装软件包的方式。4.1.1安装MySQL数据库1.卸载自带的数据库可以使用rpm命令的qa参数查看系统安装的数据库名称和版本,以方便卸载,使用如代码4-1所示的代码运行,效果如图4-1所示。代码4-1查询自带数据库rpm-qa|grepmariadb可以使用rpm命令的-e参数卸载所查询到的数据库,--nodeps参数的目的是避免软件相关性引起不能进行卸载操作,如代码4-2所示。请读者注意,这里的软件包名称和版本务必和上一步查询的一致。代码4-2卸载自带数据库rpm-e--nodepsmariadb-libs-5.5.68-1.el7.x86_64rpm-qa|grepmariadb卸载后再次执行查看的命令,已安装列表中就没有了该数据库。下面可以进行MySQL数据库的安装。图4-1自带数据库名称和版本2.安装MySQL程序包本手册所使用的MySQL版本是MySQL8.0.21,可以从官网下载压缩包。下载好的安装包解压后将文件夹上传到指定目录下,本手册指定为/root/目录,进入到/root/mysql-8.0.21/后使用ls命令可以查看上传的安装包(具体上传方式请参考项目1),如图4-2所示。图4-2查看安装包2.安装MySQL程序包应用代码4-3的rpm命令按如下顺序依次安装MySQL数据库的MySQLCommon、MySQL
Libs、
MySQLClient、MySQLServer软件包,
命令中的-ivh表示安装软件,--force表示强制安装;
--nodeps就是安装时不检查依赖关系,如这个rpm包需要A,但是系统没装A,
这样软件包就装不上,
用--nodeps能忽略依赖关系直接安装,安装过程如图4-3所示。代码4-3安装程序包cd/root/mysql-8.0.21/--切换到mysql的文件夹rpm-ivh--force--nodepsmysql-community-client-8.0.21-1.el7.x86_64.rpmrpm-ivh--force--nodepsmysql-community-common-8.0.21-1.el7.x86_64.rpmrpm-ivh--force--nodepsmysql-community-libs-8.0.21-1.el7.x86_64.rpmrpm-ivh--force--nodepsmysql-community-server-8.0.21-1.el7.x86_64.rpm图4-3解压安装的过程3.修改f配置文件安装好软件包后,需要修改MySQL数据库配置,在/etc/f文件中添加MySQL数据库配置项,如表4-1所示。应用“vi/etc/f”命令在文件的最后添加配置内容,如表4-2所示,保存退出。表4-1MySQL数据库配置字段配置值配置说明default-storage-engineinnodb设置innodb为默认的存储引擎innodb_file_per_table-设置每个表的数据单独保存,而不是统一保存在innodb系统表空间中。单独保存有方便管理和提升性能两方面优势collation-serverutf8_general_ci设置支持中文编码字符集init-connect'SETNAMESutf8'设置用户登录到数据库之后,在执行第一次查询之前执行“SETNAMESutf8”命令,将使用的字符编码设定为UTF-8character-set-serverutf8将MySQL服务器字符集设定为UTF-8表4-1MySQL数据库配置default-storage-engine=innodbinnodb_file_per_tablecollation-server=utf8_general_ciinit-connect='SETNAMESutf8'character-set-server=utf84.启动MySQL服务设置完配置选项后,启动MySQL服务,如所示代码4-4,启动之后同时查看服务的启动状态,效果如图4-4所示,可以看出mysqld进程状态为active(running),表示MySQL数据库正常运行。代码4-4启动并查看MySQL服务systemctlstartmysqld#启动服务systemctlstatusmysqld#查看服务状态如果要关闭MySQL数据库服务,执行“systemctlstopmysqld”命令即可。图4-3解压安装的过程4.1.2配置MySQL数据库1.查询初始密码MySQL数据库的root用户密码是安装后随机生成的,所以每次安装后生成的默认密码不相同。查询MySQL数据库默认密码,如代码4-5所示,密码显示的效果如图4-5所示。代码4-5查询初始密码cat/var/log/mysqld.log|greppassword代码4-5查询到的密码为随机自动生成,每一次不同,请读者注意:在后续的配置中,务必根据本地查询的密码进行登录,而不要照抄本手册的密码。图4-5初始密码显示2.安全设置MySQL数据库在使用之前,应该先进行安全初始化设置。执行代码4-6中的“mysql_secure_installation”命令初始化MySQL数据库,初始化过程中需要设定数据库root用户登录密码,密码需符合安全规则,包括大小写字符、数字和特殊符号,本手册建议设定密码为Password123$。如果是第一次进行安全设置,会首先提示用户进行初始密码的修改,如图4-6所示。代码4-6安全初始化命令mysql_secure_installation图4-6初始密码修改2.安全设置完成以上初始密码修改后,或不是首次进行安全设置(会要求输入root用户密码),会进行如图4-7所示的操作。首先在①处询问是否要修改当前的密码,可以选择修改密码也可以不修改密码。在这里选择不再修改可以直接回车;在②处询问是否删除匿名用户,输入“Y”回车;在③处表示是否拒绝root用户远程登录,在键盘直接输入回车,表示允许root用户远程登录;在④处表示是否删除测试数据库,输入“Y”回车;在⑤处表示是否重新加载授权表,输入“Y”回车;这样就完成了安全初始化设置。图4-7初始密码显示3.本地与远程访问授权由于在Hive需要添加root用户从本地和远程访问MySQL数据库表单的授权。使用MySQL登录命令连接MySQL数据库服务,如代码4-7所示,其中-u后面的root表示登录的用户名,-p后面表示root用户的密码。代码4-7复制配置文件mysql-uroot-pPassword123$成功登录后,出现MySQL的命令行模式,使用“showdatabases;”命令可以查询下当前MySQL数据库服务器中的默认的数据库列表,结果如图4-8所示。图4-8登录连接MySQL测试3.本地与远程访问授权可以看到root的host是localhost而不是%,那么当其他节点访问的时候就会被拒绝访问,所以使用SQL代码进行加一个root的host是%的账号(%表示任何主机均可访问),如代码
4-9所示,并再次查询结果如图4-10所示。代码4-9查询root用户的host配置(设置后)createuser'root'@'%'identifiedby'Password123$';selecthost,user,pluginfromuser;#查看root的host配置图4-8登录连接MySQL测试3.本地与远程访问授权现在可以使用SQL代码配置远程访问权限,并强制更新权限,如代码4-10所示。代码4-10查询root用户的host配置grantallprivilegeson*.*to'root'@'%'withgrantoption;flushprivileges;exit;#退出MySQL客户端至此,完成了配置Hive组件之前的MySQL数据库的安装与配置工作。谢谢Hive组件安装与配置主讲:李强任务描述Hive数据仓库需要运行在Hadoop文件系统上,同时将元数据存储在MySQL数据库中,所以在本任务中,安装该组件后,主要是针对Hadoop的相关属性配置以及配置MySQL的相关信息。任务分析本节的操作任务中,比较复杂的是在Hive的配置文件中设置访问MySQL数据库的信息,由于配置文件模板内容较长,读者可以选择通过查找配置项定位的方式进行修改,也可以单独做一个必要配置项内容的配置文件代替,本手册使用修改模板的方式。4.2.1安装Hive组件1.解压安装文件本手册所使用的版本是Hive3.1.2,可以从官网下载。下载好的安装包都需上传到指定目录下,本手册指定为/root/目录,使用“ls/root/”命令可以查看上传的安装包(具体上传方式请参考项目1),如图4-11所示。图4-11查看安装包使用tar命令解压Hive到/usr/local/src文件夹,并切换到安装目录下查看,可以使用ls查看解压后的效果,如代码4-11所示,效果如图4-12所示。代码4-11解压安装包tar-zxf/root/apache-hive-3.1.2-bin.tar.gz-C/usr/local/srccd/usr/local/src/ls图4-12查看解压好的安装包2.修改文件夹名称由于解压后的文件夹名称带有比较复杂的版本号,为了简化后续配置,此处修改文件夹名称。使用mv命令将解压的apache-hive-3.1.2-bin目录重命名为hive,如代码4-12所示,效果如图4-13所示。代码4-12重命名文件夹cd/usr/local/src/mvapache-hive-3.1.2-binhivels图4-2查看安装包3.修改环境变量文件为了可以在任何目录下直接执行Hive的相关命令,可以在环境变量文件中添加Hive的环境变量。前面项目已经说明过,本手册在/root/.bash_profile文件操作,修改环境变量文件如代码4-13所示。代码4-13编辑环境配置文件vi/root/.bash_profile将如表4-3所示的配置信息添加到/root/.bash_profile文件的末尾,保存退出。表4-3环境变量文件的添加内容#sethiveenvironmentexportHIVE_HOME=/usr/local/src/hiveexportPATH=$PATH:$HIVE_HOME/bin4.生效环境变量文件为了更新环境变量文件的配置,需要在master节点执行下面的命令使得环境变量文件生效,如代码4-14所示。代码4-14生效环境配置文件source/root/.bash_profile4.2.2配置Hive环境1.修改hive-env.sh配置文件hive-env.sh是Hive执行时去加载Hadoop环境变量的配置文件,用于指定Hadoop环境变量,该文件在文件夹中是模板文件,需要先从模板文件复制为hive-env.sh再修改文件内容,如代码4-15所示。代码4-15修改hive-env.shcd/usr/local/src/hive/confcphive-env.sh.templatehive-env.shvihive-env.sh将如表4-4所示的内容添加到hive-env.sh文件的末尾,保存退出。表4-4文件的添加内容exportHADOOP_HOME=/usr/local/src/hadoop2.修改hive-site.xml配置文件hive-site.xml是Hive访问MySQL数据库的核心配置文件,用于配置相关的MySQL访问属性,该文件在文件夹中是模板文件,需要先从模板文件复制为hive-site.xml再修改文件内容,由于模板文件包含的内容相当多,针对本手册面向的对象,推荐创建一个相对简单的配置文件,如代码4-16所示。代码4-16创建hive-site.xmlcd/usr/local/src/hive/confvihive-site.xml该文件需要进行设置的主要配置项参数请参考表4-5所示。表4-5hive-site.xml配置文件主要参数解释序号配置项默认值修改值1javax.jdo.option.ConnectionURLjdbc:derby:;databaseName=metastore_db;create=truejdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false&allowPublicKeyRetrieval=true2javax.jdo.option.ConnectionPasswordminePassword123$3hive.metastore.schema.verificationtruefalse4javax.jdo.option.ConnectionDriverNameorg.apache.derby.jdbc.EmbeddedDrivercom.mysql.cj.jdbc.Driver5javax.jdo.option.ConnectionUserNameAPProot6临时目录路径(共有4处需要修改)${system:java.io.tmpdir}/${system:user.name}/usr/local/src/hive/tmp2.修改hive-site.xml配置文件文件内容如表4-6所示。表4-6hive-site.xml配置文件修改内容<?xmlversion="1.0"?><?xml-stylesheettype="text/xsl"href="configuration.xsl"?><configuration><property><name>hive.exec.scratchdir</name><value>hdfs://master:9000/user/hive/tmp</value></property><property><name>hive.metastore.warehouse.dir</name><value>hdfs://master:9000/user/hive/warehouse</value></property><property><property><name>hive.metastore.uris</name>......省略3.导入包文件Hive在初始化之前需要进入MySQL数据库创建hive数据库,如代码4-19所示,进入MySQL数据库。代码4-19登录连接MySQL使用SQL语句创建Hive数据库,语句如代码4-20所示。代码4-20SQL语句创建数据库createdatabasehive;alterdatabasehivecharactersetlatin1;exit:mysql-uroot-pPassword123$4.2.3初始化Hive数据库1.创建Hive数据库需要使用如代码4-18所示的命令管理如下几个程序包。(1)使用MySQL数据库作为元数据的存储介质,还需要上传MySQL连接驱动的jar包(该jar包的版本必须与MySQL的版本匹配,本手册使用mysql-connector-java-8.0.21,并已经上传到/root/)到Hive安装文件夹的lib文件夹中。(2)将Hive安装目录lib下的jline-2.12.jar同步到Hadoop类库中。(3)删除Hive安装目录lib下的guava-19.0.0.jar包,并将Hadoop类库中的新版guava包同步过来。说明:每一个包的文件版本需要读者自行确定,并根据本地的版本对代码中的文件名进行修改。代码4-18导入包代码cp/root/mysql-connector-java-8.0.21.jar/usr/local/src/hive/lib/cp/usr/local/src/hive/lib/jline-2.12.jar/usr/local/src/hadoop/share/hadoop/yarn/lib/rm-f/usr/local/src/hive/lib/guava-19.0.jarcp/usr/local/src/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar/usr/local/src/hive/lib2.初始化Hive数据库的初始化,如代码4-21所示,需要保证此时MySQL为启动状态,效果如图4-14所示。代码4-21Hive数据库的初始化图4-14初始化成功提示schematool-dbTypemysql-initSchema谢谢HiveShell基本操作主讲:李强任务描述Hive是一种数据库技术,可以定义数据库和数据表来分析结构化的数据。通过自己的SQL查询分析需要的内容,这套SQL称为HiveSQL(简称HQL),与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML以及常见的聚合函数、连接查询、条件查询。本节任务使用HQL来实现基本的数据库和数据表操作应用。任务分析Hive用户接口主要有3个:CLI、Client和WUI,其中最常用的是CLI,CLI启动的时候,会同时启动一个Hive副本。所以我们使用CLI接口来完成基本的库操作和表操作。4.3.2Hive数据库操作Hive数据库操作Hive对数据库的操作,基本上与MySQL一致,基本语法如下。下面将完成一个简单操作数据库的应用案例。(1)创建一个名称为hive_db_test的数据库;(2)显示hive中所有的数据库列表;(3)切换到刚才新建的hive_db_test数据库数据库;(4)显示当前数据库的信息;(5)删除hive_db_test数据库数据库。CREATEDATABASE[IFNOTEXISTS]database_name;#创建数据库SHOWdatabases;#显示数据库USEdatabase_name;#切换数据库DESCdatabasedataBaseName;#显示当前数据库的信息DROPDATABASE[IFEXISTS]database_name[RESTRICT|CASCADE];#删除数据库Hive数据库操作效果如图4-16所示。图4-16Hive库操作效果图4.3.3Hive内部表操作1.创建数据文件在master节点的/home创建一个/home/hive_data文件夹,在该文件夹下创建一个student.txt文件,如代码4-22所示。代码4-22编辑数据文件mkdir/home/hive_datacd/home/hive_datavistudent.txt#在文件中添加以下内容,保存退出。1,张三,192,李四,183,王五,202.创建对应的内部表在Hive中创建一个hive_db数据库,然后在该数据库中创建一个名称为student的数据表,结构与数据文件的结构一致,包含sid、sname、sage三个列。先使用hive命令打开HiveCLI客户端。然后创建数据库和数据表,如代码4-23所示。代码4-23创建Hive表对象createdatabasehive_db;usehive_db;createtablestudent(sidint,snamestring,sageint)rowformatdelimitedfieldsterminatedby',';createdatabasehive_db;usehive_db;createtablestudent(sidint,snamestring,sageint)rowformatdelimitedfieldsterminatedby',';2.创建对应的内部表可以使用http://master:9870(Hadoop3.1.4版本)WebUI打开Hive内部表所在的HDFS路径进程查看,如图4-17所示,表中数据为空。表4-3环境变量文件的添加内容3.添加数据可以使用类似SQL语句的HiveSQL(HQL)语句管理数据,向student表添加三条数据,如代码4-24所示。代码4-24Hiveinsert数据语法由于Hive的SQL语句需要转换为MapReduce操作执行,所以每执行一条SQL语句,都需要比较长的时间完成任务,效率很低。此处一条数据的出入操作过程如图4-18所示。insertintostudent(sid,sname,sage)select1,’zhangsan’,19;insertintostudent(sid,sname,sage)select2,’lisi’,18;insertintostudent(sid,sname,sage)select3,’wangwu’,20;select*fromstudent;图4-18Hive执行insert操作过程3.添加数据当添加数据完成后执行查询语句后,表中数据如图4-19所示。也可以继续通过WebUI的方式查询数据存在HDFS的情况,如图4-20所示。在student表对应的HDFS的文件夹中,可以查询到3个数据文件块,每一个数据块的大小为128MB(HDFS的最小存储单位),每一个数据的实际大小为size标注的数字,每一个数据的副本为2个(为我们在项目2中配置HadoopHDFS时设置的副本数);3条数据3个数据块是因为insert语句是单独执行的,每一次执行均产生一个独立的数据块。图4-20导入HDFSWeb查看图4-19数据查询效果图4.导入数据由于上面的操作中,可以看到,Hive执行insert操作调用MapReduce操作执行,效率非常低下,所以一般情况下,会使用批量导入的方式来新增数据。Hive提供了local命令来往数据表中导入数据。在第1步的数据文件中,文本数据有3行数据,每一行数据的数据
项之间使用的是逗号分隔符;
在第2步创建内部表中,
指定了表的选项行格式中也设定了列的分隔符为
“
,
”
,读者需要注意这里的数据项数量,
和分隔符均需要前后一致,否则导入数据会出错。将/home/hive_data/student.txt文件中的数据导入到Hive的内部表student中,并查询,如代码4-25所示,运行结果如图4-21所示。代码4-25Hive导入数据图4-21load数据效果图loaddatalocalinpath'/home/hive_data/student.txt'intotablestudent;select*fromstudent;4.导入数据参考第3步,可以继续通过WebUI的方式查询数据存在HDFS的情况,如图4-22所示。发现刚才的数据导入产生了一个新的数据块记录,里面包含导入的3条数据。图4-21load数据效果图谢谢餐饮数据统计分析主讲:李强任务描述都市生活紧张忙碌,不少上班族已经习惯于在餐饮外卖平台上订餐,外卖平台的菜品种类丰富,提供各式风味的美食。但是即便如此,由于个体的口味偏好及菜品质量的差异,上班族们常常有不知道今天午餐应该吃什么的烦恼。W餐饮外卖平台,向广大用户提供网上订餐服务,其市场占有量在近年不断增加。当用户在W平台订餐完成后,平台会引导用户对于品尝过的菜品进行评价打分,最高为5分,最低为1分。为提高用户的购买体验,平台需要对用户的在平台上的打分数据、以及平台的相关菜品数据进行统计分析,在后续的菜品推送时能有所依据。本小节通过平台收集的用户评分数据,分析外卖平台的受欢迎度、客户的体验度。任务分析本小节将从如下的分析操作,分析外卖平台的受欢迎度、客户的体验度。(1)根据用户评分数据统计日销量和日用户量。(2)统计同时有评分和评分内容的记录。(3)分析用户的评分分布情况。(4)统计10大热销菜品。(5)统计10大评分为5的热销菜品。(6)统计单日评分超过2次的用户数。(7)找出评分次数超过两次的用户中,每个用户评分最高的记录。4.4.1数据说明数据说明因为业务数据的安全原因,用户评分数据集的数据已做了脱敏处理,只保留部分重要属性,其各属性及说明如表4-7所示。表4-7用户评分数据属性及其说明属性名称属性说明UserID用户IDMealID菜品IDRating评分ReviewTime评分的时间戳Review评价内容数据说明另外,在网站的后台数据库(MySQL)中保存着菜品的数据集,其数据内容如图4-23所示,导出后形成Parquet文件。在用户评分数据集中,保存了用户对菜品的评分信息,很大程度上反映了用户对菜品的兴趣度,因此这份数据将作为统计分析的主要数据源。图4-23菜品数据集4.4.2创建数据表并导入数据创建数据表并导入数据将用户评分数据realrating.parquet和菜品数据meal_list.txt上传至Linux系统的/opt目录下,启动Hadoop集群、MySQL服务、MetaStore服务,打开HiveCLI,在命令行窗口进行菜品数据表meal_list和用户评分数据表meal_rating的创建并导入相应数据,如代码4-26所示。代码4-26创建数据表并导入数据createdatabasemeal;usemeal;--创建菜单表createtablemeal_list(idint,MealIdstring,mealnamestring)rowformatdelimitedfieldsterminatedby',';--导入数据loaddatalocalinpath'/opt/meal_list.txt'overwriteintotablemeal_list;......省略创建数据表并导入数据导入数据后,可使用select语句查询前5行数据,检验一下,查询结果如图4-24所示。图4-24查询数据表前5行数据4.4.3统计分析任务实现统计分析任务实现根据用户评分数据,使用日期函数from_unixtime与cast实现日期格式的转换,在通过聚合函数count,结合分组关键字groupby实现日销量和日用户量的统计,最后使用排序关键字orderby对日期进行升序输出,如代码4-27所示。代码4-27统计日销量和日用户量selectymd,count(1)asdaycount,count(distinctuserid)asusercountfrom(select*,from_unixtime(cast(reviewtimeasbigint),'yyyy-MM-dd')asymdfrommeal_rating)tmpgroupbyymdorderbyymd;部分运行结果如图4-25所示,其中菜品日销量比日用户量普遍都高,意味着存在有部分用户在一天内购买同一种菜品的现象。图4-25日销量和日用户量部分统计结果统计分析任务实现通过使用聚合函数count,结合条件筛选关键字where,统计同时有评分和评分内容的记录,如代码4-28所示。代码4-28查询同时有评分和评分内容的记录统计结果如图4-26所示,使用聚合函数count统计用户评分数据表meal_rating的总数据量为38383,意味着用户评分数据表中的所有记录均有评分与评分内容。使用聚合函数对用户评分数据表分析用户的评分分布情况,如代码4-29所示。代码4-29创建手游被关注信息表selectcount(*)frommeal_ratingwherereviewisnotnullandratingisnotnull;图4-26查询同时有评分和评分内容的记录selectrating,count(1),round(count(1)/38383*100,2)asusercountfrommeal_ratinggroupbyrating;selectmax(rating)asmaxrating,min(rating)asminrating,round(avg(rating),3)asavgrating,round(stddev(rating),3)asstdratingfrommeal_rating;统计分析任务实现由图4-27可知,54.77%的用户在评分时都会打5分,其中打3分的用户超过90%;由图
4-28可知,用户评分的最大值为5分,最小值为1分,平均值为4.19分,标准差为1.118分,说明了用户评分的数值数据较为集中,结合平均值为4.19分,可以推断,评分数值数据较多为4、5分,即由图4-27所展示的情况。图4-28用户评分分布情况2图4-27用户评分分布情况1使用分组关键字groupby对菜品ID进行分组,结合聚合函数count统计记录数,然后使用排序关键字orderby降序输出10条数据,实现统计10大热销菜品,如代码4-30所示。代码4-30统计10大热销菜品1selectmealid,count(1)asmealcountfrommeal_ratinggroupbymealidorderbymealcountdesclimit10;统计分析任务实现运行结果如图4-29所示,第1列数据为菜品ID,第2列数据即为销售数据。基于代码4-30的分析思路,使用联合关键字join,连接菜品数据表meal_list,输出10大热销菜品与其对应菜品名称,如代码4-31所示。代码4-31统计10大热销菜品2图4-2910大热销菜品统计情况1selecta.mealid,a.mealcount,b.mealnamefrom(selectmealid,count(1)asmealcountfrommeal_ratinggroupbymealidorderbymealcountdesclimit10)ajoinmeal_listbona.mealid=b.mealid;参考代码4-31的分析思路,实现统计10大评分为5的热销菜品,如代码4-32所示,运行结果如图4-31所示。代码4-32统计10大评分为5的热销菜品selecta.mealid,a.mealcount,b.mealnamefrom(selectmealid,count(1)asmealcountfrommeal_ratingwhererating=5groupbymealidorderbymealcountdesclimit10)ajoinmeal_listbona.mealid=b.mealid;图4-3110大评分为5的热销菜品统计情况统计分析任务实现为提高查询效率,创建一张视图meal_rating_ymd,内容为用户评分数据表的所有数据与进行了格式转换的日期;对创建好的视图使用聚合函数count,结合条件筛选关键字having,实现统计单日评分超过2次的用户数,如代码4-33所示。代码4-33统计单日评分超过2次的用户数图4-32统计单日评分超过2次的用户数情况createviewmeal_rating_ymdasselect*,from_unixtime(cast(reviewtimeasbigint),'yyyy-MM-dd')asymdfrommeal_rating;selectcount(distinctuserid)from(selectymd,userid,count(1)asratingcountfrommeal_rating_ymdgroupbyymd,useridhavingratingcount>2)tmp;运行结果如图4-32所示,总计2231名用户单日评分超过两次,结合用户评分数据表的中数据量38383,单日评分超过两次的用户所占比例约为5.81%,数据较小,说明很少有用户在一天内评分两次。使用聚合函数count统计记录数,分析函数rank对通过over()子句划分的分区进行数据排名,实现统计查询每个用户评分最高的记录,如代码4-34所示,运行结果如图4-32所示。统计分析任务实现代码4-34统计每个用户评分最高的记录图4-33每个用户评分最高的记录统计情
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冬季绿化养护与管理
- 宣传写作课件学习
- 宠物日常护理课件图片
- 二零二五年度新能源电池采购合同协议
- 2025版茶叶品牌重塑与市场拓展合同
- 二零二五年度个人消费贷款借款合同
- 二零二五年度测绘仪器采购与测绘项目验收服务合同
- 2025版跨国公司财务全球税务筹划合同
- 2025版高端医疗器械采购合同作废及供应商变更协议
- 二零二五年度阿拉尔经济技术开发区土地经营权流转合同
- 2025年农村经济与农业发展考试试题及答案
- 14.3角的平分线第1课时角的平分线的性质课件人教版数学八年级上册
- 2024年云南省文山州州属事业单位选调工作人员笔试真题
- 加油站气象灾害综合应急预案 2024
- 国家职业标准 -碳排放管理员
- 党支部书记培训考试题及答案
- 房地产企业开发成本财务培训
- GB/T 9144-2025普通螺纹优选系列
- 药厂车间员工管理制度
- 【物化生 山东卷】2025年山东省高考招生统一考试高考真题物理+化学+生物试卷(真题+答案)
- 肛周良性疾病诊疗要点
评论
0/150
提交评论