,如 Phoenix、Hive 支持 吞吐量 百万查询/每秒 数千查询/每秒 理解了上面的表格之后,我们在看看数据是如何在 HBase 以及 RDBMS 中排布的。...在 Phoenix 的帮助下,RDBMS 的用户可以很容易的使用 HBase,并且迁移原有的业务到 HBase 之中。下来就让我们简单了解一下,如何在 HBase 之上使用 Phoenix。...重启之后,我们便尽可以进入到刚才解压的 Phoenix 目录,进入其子目录 bin。在这个目录中 Phoenix 提供了 sqlline.py 脚本。...例如下图中,我使用 Phoenix 创建了一张表 t1,包含了 name 和 age 两个列,并插入了两行数据。具体的命令如下图: 图 10. 如何在 Phoenix 中创建表 ?...我们可以看到在 Phoenix 中,我们使用了丰富的数据类型,如 INTEGER 和 VARCHAR。这些都是无法直接在 HBase 中使用的。
1.文档编写目的 ---- 昨天我们简单介绍了一下Apache Phoenix,请参考Cloudera Labs中的Phoenix。...今天我们主要讲述如何在CDH中安装配置Phoenix,并会做一些使用示例。...2.在CDH集群中安装Phoenix ---- 1.到Cloudera官网下载Phoenix的Parcel,注意选择与操作系统匹配的版本,因为本次测试使用的是Redhat7,所以选择后缀名为el7的文件...3.如何在CDH集群中使用Phoenix 3.1Phoenix的基本操作 ---- 进入Phoenix的脚本命令目录 [ec2-user@ip-172-31-22-86 bin]$ cd /opt/cloudera...Phoenix中的SQL操作,可以马上同步到HBase,通过hbase shell检查都成功。
Kerberos认证 使用Phoenix查看HBase表情况 phoenix-sqlline !..."); // kerberos环境下Phoenix的jdbc字符串为 jdbc:phoenix:zk:2181:/znode:principal:keytab...,代码执行情况如下: 验证 kinit hbase klist Phoenix终端验证 登录Phoenix,查看表信息如下 phoenix-sqlline !...查看testjdbc表中数据 select * from testjdbc limit 10; 如上所示,与IDEA中查询的数据一致 HBase shell验证 登录HBase shell,查看当前已存在的表...Kerberos环境需要hbase-site.xml文件,只需将该文件放在项目工程下的resources目录下即可 在访问HBase时,实际上是先访问的Zookeeper,所以代码中需要配置Zookeeper
它可以让你像传统数据库表的方式创建和管理HBase中的表,同时Phoenix也支持复合主键。...Phoenix的目标是在HBase之上提供一个高效的类关系型数据库的工具,定位为低延时的查询应用。Impala则主要是基于HDFS的一些主流文件格式如文本或Parquet提供探索式的交互式查询。...Hive类似于数据仓库,定位为需要长时间运行的批作业。 Phoenix很适合需要在HBase之上使用SQL实现CRUD,Impala则适合Ad-hoc的分析类工作负载,Hive则适合批处理如ETL。...SQL的命令脚本,在执行该命令之前,你需要指定HBase集群的Zookeeper地址,比如:phoenix-sqlline.py zk01.example.com:2181。...9.总结 ---- Phoenix简化了HBase很多场景的使用方式。与Cloudera Labs中的其他工具一样,Cloudera官方不会提供Support,仅供实验使用。
一 安装部署 1, 下载 http://archive.apache.org/dist/phoenix/ 本文下载的是apache-phoenix-4.12.0-HBase-1.2-bin.tar.gz...在phoenix的bin目录下执行: sqlline.py [zookeeper] ....=> 5} 2, 创建phoenix视图 CREATE VIEW "t1" ( pk VARCHAR PRIMARY KEY, "f1".val VARCHAR ) Pk列声明你的Rowkey是字符串类型...请注意,如果使用全部大写名称创建HBase表,则不需要双引号(因为这是Phoenix对字符串进行规范化的方法,通过上面的方式对它们进行标准化)。...VARCHAR) Hbase表中插入一条数据,phoenix表中查询 put 't1','1001','f1:VAL','lisi' 同时创建hbase和phoenix表: 也可以直接使用cteate
Fayson之前的文章《0308-如何在CDH5.14.2中安装Phoenix4.14.0》。...现在Cloudera和Hortonworks合并以后,两边的产品也进行了合并,如之前介绍的CFM,CEM集成到CDH,现如今Phoenix也包含到了CDH中,Cloudera官方会提供支持。...本文Fayson会对Phoenix做一个简单介绍后,然后介绍如何在CDH5.16.2中安装和使用Phoenix。...它可以让你像传统数据库表的方式创建和管理HBase中的表,同时Phoenix也支持复合主键。...Phoenix的目标是在HBase之上提供一个高效的类关系型数据库的工具,定位为低延时的查询应用。Impala则主要是基于HDFS的一些主流文件格式如文本或Parquet提供探索式的交互式查询。
phoenix-psql.py phoenix-sqlline.py phoenix-utils.py (可左右滑动) 执行 phoenix-sqlline.py 初始化使用...Phoenix 中创建 HBase 表的二级索引。...它使得索引的建立不仅仅只限于基于列,而可以使用任意的表达式来创建索引,在查询时,如出现相同的表达式查询条件,则会自动优先检索索引表。...而查询数据的时候,Phoenix 会通过索引表来快速低损耗的获取数据。因此全局索引更适合读多写少的使用场景。...HBase集成Phoenix,构建Phoenix view和table的区别 2. 如何使用Phoenix在CDH的HBase中创建二级索引 3.
在第二部分中,我们将通过分步示例演示如何在您的 COD 环境中使用事务。查看如何在 COD 中使用事务。...OMID 使大数据应用程序能够从两全其美中获益:NoSQL 数据存储(如 HBase)提供的可扩展性,以及事务处理系统提供的并发性和原子性。...图 1:OMID 客户端视图 COD 自动执行管理 Phoenix 事务的所有步骤。这些步骤在附件 1中有所描述。...这些操作使用不同的工具以不同的方式执行。 在本节中,您可以找到流行的 SQL 开发工具(如DbVisualizer )的链接和示例片段。...我们还包括各种场景,您可以在其中包含 COD 事务和描述如何在实时场景中实施事务的端到端流程。 那么,您准备好试用 COD 事务支持了吗?这是使用 COD 创建数据库的第一步。
/opt/module/phoenix/bin/sqlline.py hadoop101,hadoop102,hadoop103:2181 三、Phoenix操作 1、Phoenix 数据映射 Phoenix...2、Phoenix Shell操作 登录Phoenix /opt/module/phoenix/bin/sqlline.py hadoop101,hadoop102,hadoop103:2181 创建表...,若要小写,使用双引号,如"us_population"。...中建表,会在HBase中创建一张对应的表。...为了减少数据对磁盘空间的占用,Phoenix默认会对HBase中的列名做编码处理。
dbinfo 提供有关数据库的元数据信息 !describe 描述一个表 !dropall 删除当前数据库中的所有表 !exportedkeys 列出指定表的所有导出键 !go 选择当前连接 !...manual 显示sqlline手册 !metadata 获取元数据信息 !nativesql 显示指定语句的本机SQL !...rehash 获取用于完成命令的表和列名称 !rollback 回滚当前事务(如果关闭自动提交) !run 从指定的文件运行脚本 !save 保存当前变量和别名 !...set 设置sqlline变量 C: 建立employee的映射表—数据准备 数据准备然后我们来建立一个映射表,映射我之前建立过的一个hbase表 employee.有2个列族 company、family...中使用upsert关键字, 如果表中不存在该数据则插入,否则更新 插入: 0:jdbc:phoenix:node01> upsert into "employee" values('row3','billy
Phoenix ? 1. 定义 Phoenix 最早是 saleforce 的一个开源项目,后来成为 Apache 的顶级项目。 ...能够让我们使用标准的 JDBC API 去建表, 插入数据和查询 HBase 中的数据, 从而可以避免使用 HBase 的客户端 API. ...容易集成:如Spark,Hive,Pig,Flume和Map Reduce。 3. 架构 ? 4. 数据存储 Phoenix 将 HBase 的数据模型映射到关系型世界 ?...column quliafier rowkey 主键 在sql中如建表时,指定的主键是联合主键(由多个列共同作为主键), 在hbase中,rowkey就是多个主键共同拼接的结果!...启动 Phoenix [bigdata@hadoop002 phoenix]$ bin/sqlline.py hadoop002:2181 ? 8.
前言 Hbase中的数据读取起来不太方便,所以这里使用Phoenix来保存数据。...注意 在Phoenix中无论表还是字段只要没有双引号引起来的字段都会变成大写。...启动query server queryserver.py start lsof -i:8765 连接 sqlline-thin.py http://hadoop01:8765 创建schema create...public void cancel() { } } ResultSet.next其实是取一条就跟数据库通讯拿一条数据,并不是全部取出放在内存,因为ResultSet.next之前,是获取了数据库连接的...,数据库连接断开,你就获取不到数据了,说明是有通讯的。
Fayson在前面的文章《Cloudera Labs中的Phoenix》和《如何在CDH中使用Phoenix》中介绍了Cloudera Labs中的Phoenix,以及如何在CDH5.11.2中安装和使用...《如何在CDH中使用Phoenix》。...3.Covered Indexes(覆盖索引) ---- 1.使用覆盖索引获取数据的过程中,内部不需要再去HBase的原表获取数据,查询需要返回的列都会被存储在索引中。...数据表的添加、删除和修改都会更新相关的索引表(数据删除了,索引表中的数据也会删除;数据增加了,索引表的数据也会增加)。而查询数据的时候,Phoenix会通过索引表来快速低损耗的获取数据。...查询引擎会使用index1_hbase_test这个索引,由于它会发现索引表中没有s5数据,所以每一行它都会去原数据表中获取s5的值。
Labs中的Phoenix》,《如何在CDH中使用Phoenix》和《如何使用Phoenix在CDH的HBase中创建二级索引》中介绍了Cloudera Labs中的Phoenix,如何在CDH5.11.2...中安装和使用Phoenix4.7,以及如何使用Phoenix4.7+CDH5.14.2建立HBase的二级索引。...虽然在Fayson在《如何使用Phoenix在CDH的HBase中创建二级索引》文章中,在CDH5.14.2也使用Phoenix4.7版本没发现问题。...本文Fayson主要介绍如何在CDH5.14.2中使用Parcel安装Phoenix4.14.0....2.将准备好的csv文件put到HDFS,然后通过Phoenix自带的bulkload工具将准备好的csv文件批量导入到Phoenix的表中。
需要将如下的参数添加到Hbase中conf目录下的hbase-site.xml 和 phoenix中bin目录下的 hbase-site.xml中 phoenix.schema.isNamespaceMappingEnabled...schema 创建schema create schema "zdb"; 注意:在phoenix中,schema名,表名,字段名等会自动转换为大写,若要小写,使用双引号,如”zdb”。...如果要在Phoenix中操作直接在HBase中创建的表,则需要在Phoenix中进行表的映射。 映射方式有两种: 视图映射 表映射。...address" varchar) column_encoded_bytes=0; 4.表映射中数值类型的问题 Hbase中存储数值类型的值(如int,long等)会按照正常数字的补码进行存储....因此,如果hbase表中的数据的写是由phoenix写入的,不会出现问题,因为对数字的编解码都是phoenix来负责。
业务实现之编写写入DIM层业务代码一、代码逻辑和架构图编写代码读取Kafka “KAFKA-DIM-TOPIC” topic维度数据通过Phoenix写入到HBase中,我们可以通过topic中每条数据获取该条数据对应的...phoenix表名及字段名动态创建phoenix表以及插入数据,这里所有在mysql“lakehousedb.dim_tbl_config_info”中配置的维度表都会动态的写入到HBase中。...phoenix中插入数据所有列 val colsList: ListBuffer[String] = MyStringUtil.getAllCols(cols) //获取主键对应的值...Kafka数据从头开始读取,然后执行代码,代码执行完成后可以进入phoenix中查看对应的结果# 在node4节点上启动phoenix[root@node4 ~]# cd /software/apache-phoenix.../sqlline.py
schema 创建schema create schema "zdb"; 注意:在phoenix中,schema名,表名,字段名等会自动转换为大写,若要小写,使用双引号,如"zdb"。...quit 表的映射 默认情况下: Phoenix中创建的表在HBase中是可以看到的。 直接在HBase中创建的表,通过Phoenix是查看不到的。...1)表的关系 如果要在Phoenix中操作直接在HBase中创建的表,则需要在Phoenix中进行表的映射。 映射方式有两种: 视图映射 表映射。...address" varchar) column_encoded_bytes=0; 表映射中数值类型的问题 Hbase中存储数值类型的值(如int,long等)会按照正常数字的补码进行存储....因此,如果hbase表中的数据的写是由phoenix写入的,不会出现问题,因为对数字的编解码都是phoenix来负责。
命令 描述:可以用于对文件进行校验和得到文件的MD5值; 参数语法: md5sum [选项] [文件] #可以接受多个文件或通配符 -c #核验数据完整性 实际案例: #示例1.获取一个目录中的所有文件...-c选项可以用生成的md5文件核实数据的完整性,如: $ md5sum a.txt > a.md5 $ md5sum –c a.md5 a.txt: OK uuidgen 描述:uuid码全称是通用唯一识别码....sha1文件中再将test.txt和test.sha1放在同一个目录中,使用-c命令行选项验证文件的完整性。...-s或--strings= 只显示符合指定的字符数目的字符串。 -t或--format= 设置输出格式。...xxd -g1 #显示字符串 hello 的16进制数据: echo -e "\x68\x65\x6c\x6c\x6f" #示例5.在vim中也可以把文件转换为16进制来显示: :%!
/sqlline.py hadoop001:2181 2.5 启动结果 启动后则进入了 Phoenix 交互式 SQL 命令行,可以使用 !table 或 !...HBase 上的表,关于表的信息,可以通过 Hbase Web UI 进行查看: 3.2 插入数据 Phoenix 中插入数据采用的是 UPSERT 而不是 INSERT,因为 Phoenix 并没有更新操作...quit 3.7 扩展 从上面的操作中可以看出,Phoenix 支持大多数标准的 SQL 语法。...("population")); } statement.close(); connection.close(); } } 结果如下: 实际的开发中我们通常都是采用第三方框架来操作数据库...,如 mybatis,Hibernate,Spring Data 等。
一、Phoenix简介 Phoenix 是 HBase 的开源 SQL 中间层,它允许你使用标准 JDBC 的方式来操作 HBase 上的数据。.../sqlline.py hadoop001:2181 2.5 启动结果 启动后则进入了 Phoenix 交互式 SQL 命令行,可以使用 !table 或 !tables 查看当前所有表的信息 ?...3.2 插入数据 Phoenix 中插入数据采用的是 UPSERT 而不是 INSERT,因为 Phoenix 并没有更新操作,插入相同主键的数据就视为更新,所以 UPSERT 就相当于 UPDATE+...quit 3.7 扩展 从上面的操作中可以看出,Phoenix 支持大多数标准的 SQL 语法。...实际的开发中我们通常都是采用第三方框架来操作数据库,如 mybatis,Hibernate,Spring Data 等。
领取专属 10元无门槛券
手把手带您无忧上云