Dag allemaal,
Ik ben sinds kort begonnen met noSQL database HBase, ik probeer hier spelenderwijs beetje in thuis te raken.
Nu heb ik alles draaien en kan ik via PHP icm Thrift praten met HBase Server. Dus dat gaat allemaal goed.
Wat ik alleen niet begrijp van dit soort databases is hoe ga je te werk met bijvoorbeeld de ID's ? (Rows in dit geval)
Voorbeeldje van mijn test database:
Hoe ga je specifieke data opvragen/bewerken uit je database als je geen ID heb maar bijvoorbeeld wel exact de zelfde waarde in de columns? Je heb geen row-ID die je kan opgeven.
Om mijn vraag iets duidelijker te maken, hoe vertaal je onderstaande SQL-querys naar een noSQL type als er niet echt een ID bestaat. Of moet ik mijn ROW benaming anders opbouwen, zoja, op welke manier denk jij?
Ter verduidelijking, ik hoef geen hele uitleg over de shell van HBase, wil alleen weten hoe je met noSQL 1 specifieke regel kan aanroepen/wijzigen zonder dat je een referentie als een ID heb. En hoe ik het beste te werk kan gaan om het makkelijker te maken om toch bij deze data te komen (bijvoorbeeld door andere opbouw van mijn database)
Ook weet ik dat er Hive bestaat, maar dat heb ik nog niet draaiend. Maar sowieso moet je ook zonder Hive dit soort dingen kunnen doen lijkt mij.
Ter info: bij mij draait nu:
Hadoop 2
Zookeeper
HBase
Thrift (met Thrift generated PHP classes)
Ik ben sinds kort begonnen met noSQL database HBase, ik probeer hier spelenderwijs beetje in thuis te raken.
Nu heb ik alles draaien en kan ik via PHP icm Thrift praten met HBase Server. Dus dat gaat allemaal goed.
Wat ik alleen niet begrijp van dit soort databases is hoe ga je te werk met bijvoorbeeld de ID's ? (Rows in dit geval)
Voorbeeldje van mijn test database:
Nu is dus mijn row "username1", nou bestaan er geen auto increments in een noSQL database (ja is er wel soort van in te bouwen maar is niet de manier zoals het hoort heb ik begrepen)Tabel aangemaakt met:
create 'storedata', 'privatekey', 'publicaddress', 'balance', 'state'
1ste regel die ik heb toegevoegd (bogus data):
put 'storedata', 'username1', 'privatekey', '617d317550f7ef25d1cf81aa4af5b'
put 'storedata', 'username1', 'publicaddress:compressed', '1843ih43hipubaddr'
put 'storedata', 'username1', 'publicaddress:uncompressed', '1843ih43hipubaddruncompressed'
put 'storedata', 'username1', 'balance:compressedaddress', '112'
put 'storedata', 'username1', 'balance:uncompressedaddress', '10'
put 'storedata', 'username1', 'state', '1'
Hoe ga je specifieke data opvragen/bewerken uit je database als je geen ID heb maar bijvoorbeeld wel exact de zelfde waarde in de columns? Je heb geen row-ID die je kan opgeven.
Om mijn vraag iets duidelijker te maken, hoe vertaal je onderstaande SQL-querys naar een noSQL type als er niet echt een ID bestaat. Of moet ik mijn ROW benaming anders opbouwen, zoja, op welke manier denk jij?
Hopelijk ben ik beetje duidelijk, weet niet echt hoe ik het moet verwoorden.SELECT * FROM 'storedata' WHERE `id` = '1'
of
UPDATE `storedata` SET `state` = '2' WHERE `id` = '1'
Ter verduidelijking, ik hoef geen hele uitleg over de shell van HBase, wil alleen weten hoe je met noSQL 1 specifieke regel kan aanroepen/wijzigen zonder dat je een referentie als een ID heb. En hoe ik het beste te werk kan gaan om het makkelijker te maken om toch bij deze data te komen (bijvoorbeeld door andere opbouw van mijn database)
Ook weet ik dat er Hive bestaat, maar dat heb ik nog niet draaiend. Maar sowieso moet je ook zonder Hive dit soort dingen kunnen doen lijkt mij.
Ter info: bij mij draait nu:
Hadoop 2
Zookeeper
HBase
Thrift (met Thrift generated PHP classes)
D3Fix, Ethical Hacker, Pokeraar, Programmeur