HBaseCon 2012 | Living Data: Applying Adaptable Schemas to HBase - Aaron Kimball, WibiData

2,742 views

Published on

HBase application developers face a number of challenges: schema management is performed at the application level, decoupled components of a system can break one another in unexpected ways, less-technical users cannot easily access data, and evolving data collection and analysis needs are difficult to plan for. In this talk, we describe a schema management methodology based on Apache Avro that enables users and applications to share data in HBase in a scalable, evolvable fashion. By adopting these practices, engineers independently using the same data have guarantees on how their applications interact. As data collection needs change, applications are resilient to drift in the underlying data representation. This methodology results in a data dictionary that allows less-technical users to understand what data is available to them for analysis and inspect data using general-purpose tools (for example, export it via Sqoop to an RDBMS). And because of Avro’s cross-language capabilities, HBase’s power can reach new domains, like web apps built in Ruby.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,742
On SlideShare
0
From Embeds
0
Number of Embeds
201
Actions
Shares
0
Downloads
89
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

HBaseCon 2012 | Living Data: Applying Adaptable Schemas to HBase - Aaron Kimball, WibiData

  1. 1. Living Data: Applying Adaptable Schemas to HBaseAaron Kimball – CTO WibiData, Inc.
  2. 2. HBase is a nexus for your data
  3. 3. HBase: Schema free (unfortunately)• Cells only hold byte arrays• Column names implicitly defined by apps• Each app must (de)serialize values correctly• Changing a schema requires rewriting a column—and updating every reader/writer
  4. 4. Datatypes can get rooted in place =
  5. 5. Avro: Flexible schemas =
  6. 6. Avro decouples schemas
  7. 7. Every cell stores its schema (hash)
  8. 8. Layout table stores common schemas <column> <name>info:email</name> <description>User email address</description> <schema>“string”</schema> </column>• Data dictionary provides reference to engineers on different projects• Common schemas used by tools that want to enforce a “default” schema for a column (e.g., Sqoop-based exports)
  9. 9. Conclusions• Avro allows decoupled applications to: – Share the same data store – Change individual applications without downtime – Eliminates need to structurally modify data• Layout management allows: – Developers to communicate about data without using code – Data-agnostic applications to manipulate structured information
  10. 10. www.wibidata.com / @wibidata Aaron Kimball – aaron@wibidata.com

×