1 / 84

James Taylor @ JamesPlusPlus http://phoenix- hbase.blogspot.com /

James Taylor @ JamesPlusPlus http://phoenix- hbase.blogspot.com /. Phoenix. We put the SQL back in NoSQL https:// github.com/forcedotcom/phoenix. Agenda. What/why HBase ? What/why Phoenix? How does Phoenix work? Demo Roadmap Q&A. Completed. What is HBase ?.

keefe
Download Presentation

James Taylor @ JamesPlusPlus http://phoenix- hbase.blogspot.com /

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. James Taylor @JamesPlusPlus http://phoenix-hbase.blogspot.com/ Phoenix We put the SQL back in NoSQL https://github.com/forcedotcom/phoenix

  2. Agenda • What/why HBase? • What/why Phoenix? • How does Phoenix work? • Demo • Roadmap • Q&A Completed

  3. What is HBase? • Developed as part of Apache Hadoop • Runs on top of HDFS • Key/value store • Sparse • Consistent • Distributed • Multidimensional • Sorted Completed

  4. Why Use HBase? • If you have lots of data • Scales linearly • Shards automatically • If you can live without transactions • If your data changes • If you need strict consistency Completed

  5. What is Phoenix? Completed

  6. What is Phoenix? • SQL skin for HBase Completed

  7. What is Phoenix? • SQL skin for HBase • Alternate client API Completed

  8. What is Phoenix? • SQL skin for HBase • Alternate client API • Embedded JDBC driver Completed

  9. What is Phoenix? • SQL skin for HBase • Alternate client API • Embedded JDBC driver • Runs at HBase native speed Completed

  10. What is Phoenix? • SQL skin for HBase • Alternate client API • Embedded JDBC driver • Runs at HBase native speed • Compiles your SQL into native HBase calls Completed

  11. What is Phoenix? • SQL skin for HBase • Alternate client API • Embedded JDBC driver • Runs at HBase native speed • Compiles your SQL into native HBase calls • So you don’t have to! Completed

  12. Phoenix

  13. Phoenix Phoenix

  14. Phoenix Performance

  15. Why Use Phoenix? • Give folks an API they already know Completed

  16. Why Use Phoenix? • Give folks an API they already know • Reduce the amount of code needed Completed

  17. Why Use Phoenix? • Give folks an API they already know • Reduce the amount of code needed • SELECT TRUNC(date,'DAY’), AVG(cpu) • FROM web_stat • WHERE domain LIKE 'Salesforce%’ • GROUP BY TRUNC(date,'DAY’) Completed

  18. Why Use Phoenix? • Give folks an API they already know • Reduce the amount of code needed • Perform optimizations transparently Completed

  19. Why Use Phoenix? • Give folks an API they already know • Reduce the amount of code needed • Perform optimizations transparently • Aggregation • Skip Scan • Secondary indexing (soon!) Completed

  20. Why Use Phoenix? • Give folks an API they already know • Reduce the amount of code needed • Perform optimizations transparently • Leverage existing tooling Completed

  21. Why Use Phoenix? • Give folks an API they already know • Reduce the amount of code needed • Perform optimizations transparently • Leverage existing tooling • SQL client/terminal • OLAP engine Completed

  22. How Does Phoenix Work? • Overlays HBase Data Model • Versioned Schema Respository • Query Processor Completed

  23. Phoenix Data Model • Phoenix maps HBase data model to the relational world

  24. Phoenix Data Model • Phoenix maps HBase data model to the relational world

  25. Phoenix Data Model • Phoenix maps HBase data model to the relational world

  26. Phoenix Data Model • Phoenix maps HBase data model to the relational world

  27. Phoenix Data Model • Phoenix maps HBase data model to the relational world

  28. Phoenix Data Model • Phoenix maps HBase data model to the relational world

  29. Phoenix Data Model • Phoenix maps HBase data model to the relational world

  30. Phoenix Data Model • Phoenix maps HBase data model to the relational world

  31. Phoenix Data Model • Phoenix maps HBase data model to the relational world Multiple Versions

  32. Phoenix Data Model • Phoenix maps HBase data model to the relational world Phoenix Table

  33. Phoenix Data Model • Phoenix maps HBase data model to the relational world Phoenix Table Key Value Columns

  34. Phoenix Data Model • Phoenix maps HBase data model to the relational world Phoenix Table Row Key Columns Key Value Columns

  35. Phoenix Metadata • Stored in a Phoenix HBase table • SYSTEM.TABLE Completed

  36. Phoenix Metadata • Stored in a Phoenix HBase table • SYSTEM.TABLE • Updated through DDL commands • CREATE TABLE • ALTER TABLE • DROP TABLE • CREATE INDEX • DROP INDEX Completed

  37. Phoenix Metadata • Stored in a Phoenix HBase table • SYSTEM.TABLE • Updated through DDL commands • CREATE TABLE • ALTER TABLE • DROP TABLE • CREATE INDEX • DROP INDEX • Keeps older versions as schema evolves Completed

  38. Phoenix Metadata • Stored in a Phoenix HBase table • SYSTEM.TABLE • Updated through DDL commands • CREATE TABLE • ALTER TABLE • DROP TABLE • CREATE INDEX • DROP INDEX • Keeps older versions as schema evolves • Correlates timestamps between schema and data • Flashback queries use schema was in-place then Completed

  39. Phoenix Metadata • Stored in a Phoenix HBase table • SYSTEM.TABLE • Updated through DDL commands • CREATE TABLE • ALTER TABLE • DROP TABLE • CREATE INDEX • DROP INDEX • Keeps older versions as schema evolves • Correlates timestamps between schema and data • Flashback queries use schema was in-place then • Accessible via JDBC metadata APIs • java.sql.DatabaseMetaData • Through Phoenix queries! Completed

  40. Example • Over metrics data for clusters of servers with a schema like this: Row Key

  41. Example • Over metrics data for clusters of servers with a schema like this: Key Values

  42. Example • With 90 days of data that looks like this:

  43. Example • Walk through query processing for three scenarios • Chart Response Time Per Cluster

  44. Example • Walk through query processing for three scenarios • Chart Response Time Per Cluster

  45. Example • Walk through query processing for three scenarios • Chart Response Time Per Cluster • Identify 5 Longest GC Times

  46. Example • Walk through query processing for three scenarios • Chart Response Time Per Cluster • Identify 5 Longest GC Times

  47. Example • Walk through query processing for three scenarios • Chart Response Time Per Cluster • Identify 5 Longest GC Times • Identify 5 Longest GC Times again and again

More Related