快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

hive数据库使用记录

请联系QQ:1793040 索取软件

我已经很久没有写博客了,因为实际上没有什么可写作的。我学习了一段时间的springBoot,因为我还没有完成学习,所以暂时不录制springBoopt和其他文章。

在过去的几个月中,我一直在学习保险业务知识,例如核心承保和凌乱的索赔。我还没有学过任何有趣的Java技术,但是我正在做大数据统计分析。当我使用hive数据库时,经过思考,我只是学习并记录了它。对于某些人,我直接采用了网上找到的示例。

百度百科说:hive是基于Hadoop的数据仓库工具,它可以将结构化数据文件映射到数据库表中,并提供简单的SQL查询功能,该功能可以将SQL语句转换为MapReduce任务以运行。优点是学习成本低,并且可以通过类似SQL的语句快速实现简单的MapReduce统计信息。无需开发特殊的MapReduce应用程序,该应用程序非常适合数据仓库的统计分析。 Hive是建立在Hadoop上的数据仓库基础架构。它提供了一系列可用于数据提取转换加载(ETL)的工具,该工具可以存储,查询和分析Hadoop中存储的大规模数据。

蜂巢语言是一种类似于SQL的语言,称为hql,与sql大致相同,但是也存在差异,例如不支持制表符,必须添加as等等。

语法:

创建数据库的语法:

我们可以通过LOCATION关键字指定配置单元数据库文件的位置。默认位置在hdfs上的目录/user/hive/Warehouse下,并且将在hdfs上使用数据库名称创建一个新目录。创建具有指定路径的数据库的语句如下:

您会看到在hdfs的/user/text目录中将创建一个新的db_hive_02.db目录。默认情况下,数据库db_hive_02中创建的表将默认存储在此目录中。

常用数据库操作说明

以下基本上是我每天使用的命令:

显示数据库;-查看数据库

显示类似” db_hive *”的数据库;-查看以db_hive开头的数据库

使用db_hive_02;-使用数据库,切换到当前数据库

desc数据库db_hive_02;-查看数据库的描述,请参阅字段和注释

如果要查看数据库的更多详细信息,则需要添加扩展关键字:

desc数据库扩展db_hive_02;

以下删除操作将谨慎处理

删除数据库db_hive_02;-删除数据库db_hive_02

如果数据库中有表,则在删除数据库时需要添加关键字CASCADE,这意味着在删除数据库时可以删除数据库下的所有表。删除数据库后,hdfs上的相应目录也将被删除。

删除数据库db_hive_02级联;

另外,为了在删除数据库时不引发异常,您需要添加if exist关键字,这样,如果其他人删除了数据库,则不会引发异常:

删除数据库(如果存在)db_hive_02;

安装配置单元数据库,您可以直接从Apache官方网站下载它,然后配置环境变量并设置运行路径。

蜂巢优化(百度百科如此实惠)

  • ?联接时的优化:当联接三个或更多表时,如果每个联接使用相同的字段,则将仅生成一个mapreduce。
  • ?联接时的优化:当查询多个表时,表的大小从左到右的顺序应从小到大。原因:在对记录的每一行执行操作时,Hive都会缓存其他表,直到扫描最后一个表以进行计算
  • ?在where子句中增加分区过滤器。
  • ?当可以使用左半连接语法时,不要使用内部连接,前者效率更高。原因:对于在左表中指定的记录,在右表中找到扫描后立即停止扫描。
  • ?如果其中一个表足够小,则可以将其放置在内存中,以便在与其他表连接时可以进行匹配,并且省略了简化过程。可以通过设置属性hive.auto.covert.join = true;来实现。用户可以配置要优化的小表的大小,设置为hive.mapjoin.smalltable.size = 2500000;。如果需要使用这两种配置,则可以将其放在HOME/.hiverc文件中。
  • 相同数据的多次处理:来自一个数据源的多个数据的聚合,而无需每次都重新扫描。例如:插入覆盖表,学生从员工中选择*;插入覆盖表人员,从员工中选择*;可以优化为:从员工插入覆盖表学生选择*插入覆盖表人员选择*
  • ?极限调整:极限语句通常在执行整个语句后返回部分结果。设置hive.limit.optimize.enable = true;
  • ?启用并发执行。作业任务可能包含许多阶段,其中某些阶段可以并发执行而没有依赖关系,并且在启用并发执行时可以更快地完成作业任务。设置属性:set hive.exec.parallel = true;
  • ? hive提供的strict模式在三种情况下禁止查询模式:

    a:当表是分区表并且where子句后没有分区字段和限制时,不允许执行。

    b:使用order by语句时,必须使用limit字段,因为order by仅会生成化简任务。

    c:限制笛卡尔乘积查询。

  • 合理设置图的数量并减少。

  • 重用jvm。可以在hadoop的mapred-site.xml中设置重用jvm的次数。

——————————————————————————————————————————— ———————

在配置单元中插入数据有四种方法:

1)将数据从本地文件系统导入到Hive表中;

(2)将数据从HDFS导入到Hive表中;

(3),从其他表中查询相应数据并导入到Hive表中;

(4)。创建表时,请从其他表中查询出相应的记录,并将其插入到创建的表中。

仅记录第一种类型:

首先创建一个表:

此处的重点是:以”,”结尾的行格式分隔字段

行格式分隔该字段以”,”结尾,这意味着根据文本中的逗号将数据列拆分为一个字段

接下来创建一个txt文本,格式应与创建表的语句相对应,逗号分为:

?运行命令:

好的!确认确定:

————————————————————————————————————————————————— ———————————

待续。 。 。

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1793040