专栏首页datartisan利用Sql处理MR栅格数据

利用Sql处理MR栅格数据

工作中需要处理MR栅格数据,原始数据关键列类似这个样子:

要处理成这个样子(栅格内主服务小区CGI中可能包含50多个CGI,只提取前15个)

原始文件有100多个,一共有1000多万行,而且原始数据列特别多,大概几十列吧,合并成多个excel大文件也能搞,就是操作起来太费劲,这种活最合适采用数据库或者python干了,今天咱们就来看看sql如何实现

合并原始文件

关于合并csv文件的工作,之前有文章写过,本文就不再赘述,参考这篇文章即可 利用Python批量合并csv

数据库导入合并后文件

使用navicat可以方便快速的导入csv文件,这里要特别注意的是:文件导入时默认所有字段均为varchar(255)数据类型,注意修改栅格内主服务小区CGI字段类型为textMR总点数intRSRP<=-110占比float

结果查询

根据文件格式转换说明编写sql

  1. 栅格中心经纬度标记:中心经度_中心纬度
  2. RSRP覆盖率:1-RSRP<=-110占比
  3. 栅格总采样点数:MR总点数
  4. 小区1ECGI:栅格内主服务小区CGI按照分号拆分后的第1个CGI
  5. 小区1采样点(>-110)数量:栅格内主服务小区采样点数量拆分后第1个数字 - 栅格内主服务小区弱覆盖采样点数量拆分后第1个数字
  6. 小区1采样点数量:栅格内主服务小区采样点数量拆分后第1个数字
  7. ......

合并列

mysql合并列使用CONCAT函数或者CONCAT_WS函数,语法是:

CONCAT(str1,str2,...)

CONCAT_WS(separator,str1,str2,...)

这里的写法就是:

# 写法1
concat(mr.`中心经度`,'_',mr.`中心纬度`) AS `栅格中心经纬度标记`
# 写法2
concat_ws('_',mr.`中心经度`,mr.`中心纬度`) AS `栅格中心经纬度标记`

拆分列并提取元素

mysql使用SUBSTRING_INDEX(str,delim,count),其含义是获取源字符串str中按照分隔符delim分割后,第count个分隔符之前的子字符串,支持正向和反向索引,分别以1-1开头,示例查询如下

mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
        -> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
        -> 'mysql.com'

获取第1个元素比较容易,获取第2个元素/第n个元素可以采用二次拆分的写法,类似这样:

mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 1);
        -> 'www'
mysql> SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('www.mysql.com', '.', 2), '.', -1);
        -> 'mysql'

具体到该问题,可以这么写:(由于待拆分列包含的分号个数不同,所以需要先拼接14个分号(想获取待拆分列前15个元素,待拆分列最少一个元素))

SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',2),';',-1) as 小区2采样点数量,

case when 
    LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',2),';',-1))>0 
    then
    (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',2),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',2),';',-1)) 
    else '' end as '小区2采样点(>-110)数量'

完整sql如下:

SELECT
concat(mr.`中心经度`,'_',mr.`中心纬度`) AS `栅格中心经纬度标记`,
-- concat_ws('_',mr.`中心经度`,mr.`中心纬度`) AS `栅格中心经纬度标记`,
round( 100 - mr.`RSRP<=-110占比`,2) AS `RSRP覆盖率`,
mr.`MR总点数` AS `栅格总采样点数`,
SUBSTRING_INDEX(mr.`栅格内主服务小区CGI`,';',1) as 小区1ECGI,
SUBSTRING_INDEX(mr.`栅格内主服务小区采样点数量`,';',1)-SUBSTRING_INDEX(mr.`栅格内主服务小区弱覆盖采样点数量`,';',1) as '小区1采样点(>-110)数量',
SUBSTRING_INDEX(mr.`栅格内主服务小区采样点数量`,';',1) as 小区1采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',2),';',-1) as 小区2ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',2),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',2),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',2),';',-1)) else '' end as '小区2采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',2),';',-1) as 小区2采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',3),';',-1) as 小区3ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',3),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',3),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',3),';',-1)) else '' end as '小区3采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',3),';',-1) as 小区3采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',4),';',-1) as 小区4ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',4),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',4),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',4),';',-1)) else '' end as '小区4采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',4),';',-1) as 小区4采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',5),';',-1) as 小区5ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',5),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',5),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',5),';',-1)) else '' end as '小区5采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',5),';',-1) as 小区5采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',6),';',-1) as 小区6ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',6),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',6),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',6),';',-1)) else '' end as '小区6采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',6),';',-1) as 小区6采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',7),';',-1) as 小区7ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',7),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',7),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',7),';',-1)) else '' end as '小区7采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',7),';',-1) as 小区7采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',8),';',-1) as 小区8ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',8),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',8),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',8),';',-1)) else '' end as '小区8采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',8),';',-1) as 小区8采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',9),';',-1) as 小区9ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',9),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',9),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',9),';',-1)) else '' end as '小区9采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',9),';',-1) as 小区9采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',10),';',-1) as 小区10ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',10),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',10),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',10),';',-1)) else '' end as '小区10采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',10),';',-1) as 小区10采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',11),';',-1) as 小区11ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',11),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',11),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',11),';',-1)) else '' end as '小区11采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',11),';',-1) as 小区11采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',12),';',-1) as 小区12ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',12),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',12),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',12),';',-1)) else '' end as '小区12采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',12),';',-1) as 小区12采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',13),';',-1) as 小区13ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',13),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',13),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',13),';',-1)) else '' end as '小区13采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',13),';',-1) as 小区13采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',14),';',-1) as 小区14ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',14),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',14),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',14),';',-1)) else '' end as '小区14采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',14),';',-1) as 小区14采样点数量,
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',15),';',-1) as 小区15ECGI,
case when LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区CGI`,';;;;;;;;;;;;;;'),';',15),';',-1))>0 then
 (SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',15),';',-1)-SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',15),';',-1)) else '' end as '小区15采样点(>-110)数量',
SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(mr.`栅格内主服务小区采样点数量`,';;;;;;;;;;;;;;'),';',15),';',-1) as 小区15采样点数量
FROM
mr

-- end --

感觉有收获的话,帮忙点个赞呗

本文分享自微信公众号 - 乐享数据8090(gh_5703273a0562),作者:mba1398

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 利用Python进行MR栅格数据处理

    df 中RSRP<=-110占比字段为 str ,需要先转换为 float 再除以100,最后用1-该值得到RSRP覆盖率

    披头
  • 学术大讲堂 |(六)基于大数据的网络智慧运营应用研发

    运营商的网络大数据具有实时性高、覆盖业务广、业务价值大等特点,利用网络大数据赋能网络运营智慧化是各运营商的迫切诉求,今天就给大家分享一下我们在利用网络大数据提升...

    灯塔大数据
  • “基于大数据技术的网规网优”专题论文速递3篇

    现在通信运营商已全面实现基于大数据的全生命周期优化,呈现从传统非智能的经验型优化向基于大数据进行关键分析的智能优化转变、从区域性质量优化向端到端感知优化转变、从...

    灯塔大数据
  • 学术大讲堂 |(七)如何应用大数据技术秒杀一个貌似不可能的任务

    下面我介绍的是大范围高精度栅格可视化的方案,它是我们结合大数据技术解决实际应用问题的一个典型例子,看着有点标题党的味道,其实这里我们想强调的是,我们设计和实现这...

    灯塔大数据
  • 学术大讲堂 | (七)如何应用大数据技术秒杀一个貌似不可能的任务

    今天我将介绍大范围高精度栅格可视化方案。它是结合大数据技术解决实际应用问题的一个典型例子,我们给它起了个大标题,叫做“如何应用大数据技术秒杀一个貌似不可...

    灯塔大数据
  • 8.26 VR扫描:The Void与索尼影业合作一线下VR体验;微软介绍HoloLens 2 HPU 2.0芯片设计细节

    据The Void首席创意官Curtis Hickman透露,其已与索尼达成了合作协议:将制作一款全新的线下VR体验。Hickman表示,The Void计划将...

    VRPinea
  • Google Earth Engine谷歌地球引擎ee.Image格式栅格数据基本处理

      本文主要对GEE中的ee.Image格式数据图层基本处理操作加以介绍。本文是谷歌地球引擎(Google Earth Engine,GEE)系列教学文章的第十...

    疯狂学习GIS
  • 数据仓库Hive 基础知识(Hadoop)

    Hive是基于Hadoop的数据仓库工具,可对存储在HDFS上的文件中的数据集进行数据整理、特殊查询和分析处理,提供了类似于SQL语言的查询语言–HiveQL,...

    小莹莹
  • SQL on Hadoop技术分析(一)

    背景 Hadoop的诞生是划时代的数据变革,但关系型数据库时代的存留也为Hadoop真正占领数据库领域埋下了许多的障碍。对SQL(尤其是PL/SQL)的支持一...

    大数据和云计算技术
  • ArcGIS PRO基础教程(一)

    好久不见,这次准备写几个PRO的入门教程,让大家了解一下PRO中的GIS操做特点和新的功能

    陈南GISer
  • 利用pandas处理Excel数据

    Python编程与实战
  • hive核心基本概念

    基于 Hadoop 的一个数据仓库工具: hive本身不提供数据存储功能,使用HDFS做数据存储, hive也不分布式计算框架,hive的核心工作就是把...

    业余草
  • Hive常用性能优化方法实践全面总结

    Apache Hive作为处理大数据量的大数据领域数据建设核心工具,数据量往往不是影响Hive执行效率的核心因素,数据倾斜、job数分配的不合理、磁盘或网络I/...

    大数据学习与分享
  • Spark总结篇(一)

    1.Spark可以基于内存处理数据,MR每次要落地磁盘 2.Spark有DAG有向无环图优化 3.Spark是粗粒度资源申请,MR是细粒度资源申请 4.S...

    solve
  • 大数据干货系列(五)-Hive总结

    Hive总结 一、本质 Hive基于一个统一的查询分析层,通过SQL语句的方式对HDFS上的数据进行查 询、统计和分析。 二、四大特点** • Hive本身不存...

    企鹅号小编
  • 大数据篇---Impala学习第 1 部分 Impala概述第 2 部分 Impala 安装与⼊⻔案例第 3 部分 Imapla的架构原理第 4 部分 Impala的使用

    invalidate metadata全量刷新,性能消耗较⼤,主要⽤于hive当中新建数据库或者数据库表的时候来进 ⾏刷新。

    用户2337871
  • 2021年大数据Hive(十一):Hive调优

    大多数的Hadoop Job是需要Hadoop提供的完整的可扩展性来处理大数据集的。不过,有时Hive的输入数据量是非常小的。在这种情况下,为查询触发执行任务时...

    Lanson
  • HBase Bulkload 实践探讨

    HBase 是一个面向列,schemaless,高吞吐,高可靠可水平扩展的 NoSQL 数据库,用户可以通过 HBase client 提供的 put get ...

    有赞coder
  • 盘点:SQL on Hadoop中用到的主要技术

    自打Hive出现之后,经过几年的发展,SQL on Hadoop相关的系统已经百花齐放,速度越来越快,功能也越来越齐全。本文并不是要去比较所谓“交互式查询哪家强...

    王知无-import_bigdata

扫码关注云+社区

领取腾讯云代金券