IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> hive hqlsql 简单记录 -> 正文阅读

[大数据]hive hqlsql 简单记录

hqlsql : 官网地址为http://www.hplsql.org/home ,在高版本hive已经自带了,查看hive/bin/hplsql,内容如下

[root@140 bin]# cat hplsql
#!/usr/bin/env bash

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

bin=`dirname "$0"`
bin=`cd "$bin"; pwd`

. "$bin"/hive --service hplsql "$@"

用途:Procedural SQL on Hadoop, NoSQL and RDBMS,支持跨数据库(未测试)进行数据。

主要测试了hive的存储过程,用于满足按日期循环汇总源数据到指定表的需求。

运行hplsql需要先配置hplsql-site.xml

[root@140 conf]# cat hplsql-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration>

<property>
  <name>hplsql.conn.default</name>
  <value>hive2conn</value>
</property>

<property>
  <name>hplsql.onerror</name>
  <value>seterror</value>
</property>


<property>
  <name>hplsql.conn.hive2conn</name>
  <value>org.apache.hive.jdbc.HiveDriver;jdbc:hive2://hive-server:10000/default;root;root</value>
</property>
<property>
  <name>hplsql.conn.init.hive2conn</name>
  <value>
<!--     set mapred.job.queue.name=dev;-->
     set hive.execution.engine=mr;
     set hive.exec.reducers.max=1;
     set hive.auto.convert.join=false;
     use default;
  </value>
</property>
<property>
  <name>hplsql.conn.convert.hive2conn</name>
  <value>true</value>
</property>

<!-- <property>
  <name>hplsql.conn.hiveconn</name>
  <value>org.apache.hive.jdbc.HiveDriver;jdbc:hive2://</value>
</property>
-->

<property>
  <name>hplsql.conn.mysqlconn</name>
  <value>com.mysql.jdbc.Driver;jdbc:mysql://mysql:3306/ord;root;my-secret-pw</value>
  <description>MySQL connection</description>
</property>

</configuration>

注意上面的hplsql.conn.init.hive2conn,用于执行每个存储前需要初始化(提前执行)的命令。

以下是根据当前日期循环生成sql并且insert overwrite的例子:

-- test sql 
SET hplsql.onerror = seterror;

 
BEGIN
 
     day := TO_CHAR(CURRENT_DATE);

     PRINT 'day =' || day;

     SET  intday := CAST(SUBSTRING(TO_CHAR(CURRENT_DATE),9) AS INT8); 
     PRINT 'day =' || intday;
     inst_sql :='insert overwrite table order_test_all select *  from ('
     
     intday := intday - 1;

     PRINT 'loop days =' || intday;
  WHILE intday >0 LOOP
     table_name := 'order_test_' || REPLACE( TO_CHAR(CURRENT_DATE - intday  ),'-', '');
     inst_sql := inst_sql || '  select * from '|| table_name || ' UNION ALL ' ;
     
     intday := intday - 1;
 END LOOP;
   table_name := 'order_test_' || REPLACE( TO_CHAR(CURRENT_DATE ),'-', '');
 inst_sql := inst_sql || ' select * from '|| table_name || ') a ';
 
  PRINT 'SQL :=' || inst_sql;
  EXECUTE IMMEDIATE inst_sql;
  

END;

注意“-- test sql ”为注释。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-25 11:45:16  更:2021-07-25 11:47:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 3:09:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码