Hbase Data Model์— ๋Œ€ํ•ด

  • Hbase๋Š” Data๋ฅผ Table ํ˜•ํƒœ๋กœ ์ €์žฅํ•œ๋‹ค.

Tables

  • Table์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ Row๋ฅผ ์ €์žฅํ•œ๋‹ค.
  • ํ…Œ์ด๋ธ”์€ Column Oriented ํ˜•ํƒœ๋กœ ์ €์žฅ๋œ๋‹ค.

Row

  • ํ•˜๋‚˜์˜ Row Key์™€ ์—ฌ๋Ÿฌ๊ฐœ์˜ Column์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.
  • Row๋“ค์€ ์ด๋ฆ„์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์ €์žฅ๋œ๋‹ค.
    • Row Key๋ฅผ ๋””์ž์ธ ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.
    • RowKey Design Guide

Column

  • Column์€ Column Family์™€ Column Qualifier๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ  ๊ตฌ๋ถ„์ž๋Š” :๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

Column Families

  • ์ข‹์€ Disk I/O์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ Column๋“ค์„ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ฐ€๊น๊ฒŒ ์ €์žฅํ•œ๋‹ค.
  • ๊ฐ๊ฐ์˜ Column Family๋Š” Storage ๊ด€๋ จ ์„ค์ •ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
    • ๋ฉ”๋ชจ๋ฆฌ์— Cache Option
    • ์••์ถ• Option
    • Row Key๋ฅผ ์ธ์ฝ”๋”ฉ Option
  • ํ…Œ์ด๋ธ”๋‚ด์˜ ๊ฐ๊ฐ์˜ Row๋Š” ๊ฐ™์€ Column Families๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

Column Qualifiers

  • Data์— ์ถ”๊ฐ€์ ์œผ๋กœ Index๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด Column Family์— ์ถ”๊ฐ€ํ•œ๋‹ค.
  • ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋ ๋•Œ Column Family๊ฐ€ ๊ณ ์ •์ ์ด๋”๋ผ๋„
    • Column Qualifiers๋Š” ์œ ๋™์ ์œผ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

Cell

  • Row
  • Column Family, Qualifier
  • Value
  • TimeStamp๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค.

Timestamp

  • value์™€ ํ•จ๊ป˜ ๊ฐ™์ด ์ž‘์„ฑ๋œ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ RegionServer์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋œ ์‹œ๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค.
  • ์„ค์ •์œผ๋กœ ํƒ€์ž„์Šคํƒฌํ”„์— ์“ฐ์—ฌ์งˆ ๊ฐ’์„ ๋‹ค๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Example

๋…ผ๋ฆฌ์ ์ธ ๋ชจ์Šต

  • ์ค‘๊ฐ„์ค‘๊ฐ„ ๋นˆ ๊ณต๊ฐ„์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  • ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์ €์žฅํ• ๋•Œ์—๋Š” ๋นˆ ๊ณต๊ฐ„์€ ์ƒ๊ธฐ์ง€ ์•Š๋Š”๋‹ค.

Multi-dimensional Map

{
  "com.cnn.www": {
    contents: {
      t6: contents:html: "<html>..."
      t5: contents:html: "<html>..."
      t3: contents:html: "<html>..."
    }
    anchor: {
      t9: anchor:cnnsi.com = "CNN"
      t8: anchor:my.look.ca = "CNN.com"
    }
    people: {}
  }
  "com.example.www": {
    contents: {
      t5: contents:html: "<html>..."
    }
    anchor: {}
    people: {
      t5: people:author: "John Doe"
    }
  }
}

๋ฌผ๋ฆฌ์ ์œผ๋ก  ์–ด๋–ป๊ฒŒ ์ €์žฅํ• ๊นŒ?

  • column Family๋กœ ์ €์žฅํ•œ๋‹ค.

column Family : anchor

column Family : contents

Reference