Hugetable技术培训2016年1月2大数据平台技术概述•批处理型大数据技术:–适合利用大规模集群处理海量规模数据,一般并发度较低,任务响应时间为分钟或小时级;–相关技术:MapReduce、Hive、Pig•实时/准实时型大数据技术:–集群规模可大可小,处理交互式或高并发任务,响应时间在毫秒或秒级别;–相关技术:Impala、SparkSQL•混合型:–设计上试图同时满足上述两种类型数据处理要求,可能需要克服一定的技术瓶颈;–相关技术:HBase、HugeTable3HT基础HT基础HT架构HT组件通用处理模块元数据管理模块DDL&DML处理模块HBase表模块存储引擎模块索引模块智能路由模块HT用户模型HT权限模型4HT基础HT基础HT架构HT组件通用处理模块元数据管理模块DDL&DML处理模块HBase表模块存储引擎模块索引模块智能路由模块HT用户模型HT权限模型5HT架构HugeTable定义:存储和管理大规模结构化数据的数据仓库系统,实现对应用数据集的模型定义、存储组织、索引、查询和统计分析功能。数据存储和管理:主要使用Hbase存储引擎;支持海量结构化、半结构化数据的存储和管理。数据导入导出:采用HTLoad分布式加载工具,未来集成进CrossData实现。ETL功能的一部分。数据统计分析:提供SQL92兼容的查询接口、基本统计能力,并行分析。集成多种开源查询引擎,并支持基于代价查询优化。系统管理:集成的系统监控、数据管理、用户管理、日志和告警等。数据备份恢复:支持高性能的数据库/表备份和恢复。6HT基础HT基础HT架构HT组件通用处理模块元数据管理模块DDL&DML处理模块HBase表模块存储引擎模块索引模块智能路由模块HT用户模型HT权限模型7HT组件自动化部署工具导入导出工具编译打包工具加载工具自动化测试工具开发者工具包SDK一致性检验工具外围工具SQLCli/xDBCNativeScanMapReduceSQL引擎ScanMR关系型数据库MySQL分布式文件系统HDFS分布式KV-StoreHBase监控/管理元数据存储HFileORCTextFileRCFile索引存储查询能力存储能力数据存储8HT组件–元数据管理模块HiveSQLEngineHiveMetadataAPIMetadataStorageinMySQLSmartSQLEngineHiveMetaAdapter9HT组件–DDL&DML处理模块Parser备份还原建表、建索引DDL/DML……权限管理用户管理自定义DDL、DML处理模块,这部分主要处理HT自定义的命令,可以灵活添加修改。Select/IUD10HT模块–HBase引擎表模块索引查询读取:InputFormatInsertUpdateDeleteHT的核心模块,主要工作是HBase表的增、删改、查,导入等。导入:BulkLoad/OutputFormatHBaseTableHiveHTSpark11HT组件–存储引擎模块为了满足不同应用领域对数据存储的要求,HugeTable在提供统一访问接口的前提下,底层支持多种特性不同的数据存储引擎。引擎名称特点适合场景TextFile(File)纯文本格式;原始文件可直接入库,支持多种压缩算法。入库效率要求高;数据在多应用间共享,且其他应用要求文本存储。RCFile(File)行-列混合存储方式;支持多种压缩算法。对数据入库压缩比有较高要求;数据查询针对特定列执行。Hfile(File)对数据局部排序的行存引擎,支持多种压缩方法;支持丰富的索引机制。同时具有精确定位和海量数据分析需求的场景。K-VStore数据实时入库,保证行级的数据一致性,具有一定的幵发能力。数据有IUD需求,且幵发用户较多的场景。12HT组件–HT索引模块CREATETABLETB1(start_timeBIGINT,msisdnSTRING,file_nameSTRING,line_numberBIGINT,PRIMARYKEY(start_time,msisdn))部分详单类应用要求在短时间内获取对海量数据的精确匹配查询结果,现有开源数据仓库系统系统无法满足。start_timemsisdnfile_nameline_numberrowkeyvalue(othercolumns)134993885232913500000004File000110241349938852329,13500000004File0001,1024134993885677013500000049File000220481349938856770,13500000049File0002,2048134993885439713500000108File00015121349938854397,13500000108File0001,512134993885527513500000127File00031281349938855275,13500000127File0003,12813HT组件–智能路由模块概述•SmartSQLEngine模块–开发:•以RDB的SQLEngine作为基础,进行开发•通过SERDE、INPUTFORMAT、OUTPUTFORMAT等扩展机制对Hive进行扩展–处理对象:•主要用于高并发索引查询和IUD操作•所有扩展的语法通过SmartSQLEngine进行处理–结果处理:•Hive返回的结果通过适配,转换成一致的结果14HT基础HT基础HT架构HT组件通用处理模块元数据管理模块DDL&DML处理模块HBase表模块存储引擎模块索引模块智能路由模块HT用户模型HT权限模型15HT用户模型HT用户管理员用户普通用户数据库Owner普通使用者HTDBMN16HT用户管理–SQL示例•创建用户/角色•修改密码•修改数据库所有者身份CREATEUSER[IFNOTEXISTS]user_name{PASSWORDstring|SALTbytesHASHbytes}[ADMIN];CREATEROLE[IFNOTEXISTS]role_name;ALTERUSERuser_nameSETPASSWORDstring;SETPASSWORDstring;ALTER{SCHEMA|DATABASE}database_nameSETAUTHORIZATIONuser_or_role_name;17HT用户管理–SQL示例•查看所有用户和角色hugetableshowusers;+------+-------+---------+----+------------------------+|NAME|ADMIN|REMARKS|ID|QUEUE_NAME|+------+-------+---------+----+------------------------+|ROOT|true||2|root.hugetable.default||U1|false||9|root.hugetable.default|+------+-------+---------+----+------------------------+2rowsselected(0.229seconds)hugetableshowroles;+-----------+|ROLE_NAME|+-----------+|R1||PUBLIC|+-----------+2rowsselected(0.046seconds)18HT基础HT基础HT架构HT组件通用处理模块元数据管理模块DDL&DML处理模块HBase表模块存储引擎模块索引模块智能路由模块HT用户模型HT权限模型19HT权限模型–权限结构HT权限系统权限对象权限DB1DB2DB…DB(n)20HT权限模型–权限授予/回收方式HT权限直接授权/收回间接授权/收回Role1Role2Role…RoleNUser1…UserN21HT权限模型–系统权限CREATESESSIONALTERSESSIONANALYZEANYCREATESCHEMAALTERSCHEMADROPSCHEMACREATEUSERALTERUSERDROPUSERCREATEROLEDROPROLECREATEAGGREGATEDROPAGGREGATECREATETABLECREATEANYTABLEALTERANYTABLEDROPANYTABLESELECTANYTABLEINSERTANYTABLEUPDATEANYTABLEDELETEANYTABLECREATEANYSNAPSHOTDROPANYSNAPSHOTCREATEANYPARTITIONDROPANYPARTITIONCREATEVIEWCREATEANYVIEWALTERANYVIEWDROPANYVIEWCREATEANYINDEXALTERANYINDEXDROPANYINDEXCREATESEQUENCECREATEANYSEQUENCEALTERANYSEQUENCEDROPANYSEQUENCECREATEALIASCREATEANYALIASDROPANYALIASEXECUTEANYALIASCREATETRIGGERCREATEANYTRIGGERDROPANYTRIGGERCREATECONSTANTCREATEANYCONSTANTDROPANYCONSTANT22HT权限模型–系统权限SQL语法•语法•示例--赋予系统权限GRANTsystemPrivilege[,...]TOuser_or_role_name;GRANTALLPRIVILEGESTOuser_or_role_name;--收回系统权限REVOKEsystemPrivilege[,...]FROMuser_or_role_name;REVOKEALLPRIVILEGESFROMuser_or_role_name;*当用户名为全数字时,请在引用用户名时使用双引号GRANTCREATESESSIONTOPUBLIC;GRANTCREATETABLETOUSER1;REVOKEDROPUSERFROMROLE1;REVOKEALLPRIVILEGESFROMUSER2;23HT权限模型–对象权限SELECTINSERTUPDATEDELETEALTERINDEXREFERENCESEXECUTECREATESNAPSHOTDROPSNAPSHOTCREATEPARTITIONDROPPARTITION24HT权限模型–对象权限SQL语法•语法•示例--赋予对象权限GRANTobjectPrivilege[,...]ON[objectType]objectName[,...]TOuser_or_role_name;GRANTALL[PRIVILEGES]ON[objectType]objectName[,...]TOuser_or_role_name;--收回对象权限REVOKEobjectPrivilege[,...]ON[objectType]objectName[,...]FROMuser_or_role_name;REVOKEALL[PRIVILEGES]ON[objectType]objectName[,...]FROMuser_or_role_name;objectType::=TABLE|VIEW|INDEX|TRIGGER|ALIAS|CONSTANT|SEQUENCEobjectName::=[schema_name.]object_nameGRANTSELECTONDEFAULT.T1TOUSER1;GRANTALLPRIVILEGESONINDEXDB1.INX1TOPUBLIC;REVOKEINSERT,UPDATE,DELETEONTABLET2FROMUSER2;REVOKEALLONT3FROMROLE1;25HT权限管理–查看权限•查看被赋予的系统权限–语法–示例SHOWGR