SQL-oplossing synchroniseren met een no-sql oplossing?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • roger128
  • Registratie: Oktober 2009
  • Laatst online: 09-05 19:03
Hallo iedereen

Ik ben van plan een api met bijbehorende app, website etc te bouwen. Ik doe dit op basis van data die ik van een andere api (externe partij) naar binnen haal. Dit betreft een groot XML file met hierin alle data (ik kan de api vragen om specifieke delen van deze file, ik neem aan dat er een no-sql database achter deze api zit). Dit is een erg handig formaat: stel de data bevat auto's, dan hebben auto's altijd stoelen welke altijd bekleding hebben welke altijd een kleur hebben... et cetera. Deze data is erg mooi om een website op te bouwen: ik kan de XML naar een array parsen en vervolgens door de hele array loopen.

Echter wil ik ook nog andere dingen met de api. In het voorbeeld zou ik graag klanten informeren als er een nieuwe auto beschikbaar komt of een nieuwe stoel (etc). Dit is data die perfect is voor een sql database.

Ik zit dus een beetje in dubio: wat moet ik doen. De no-sql database gebruiken en hier alle andere functionaliteit in verwerken (lijkt me overigens een heel slecht idee)? De no-sql gegevens in een sql database zetten om vervolgens vaak dezelfde informatie op te vragen als relatief dure operatie (joins e.d. terwijl de links altijd hetzelfde zijn)? Of is het een idee de databases aan elkaar te linken? En moet ik dan de ene database naar de andere linken (en in welke volgorde) of allebij updaten vanaf de api?

Een hoop vragen en waarschijnlijk ook een beetje een vaag verhaal maar ik hoop dat jullie me kunnen helpen. Alvast bedankt! _/-\o_

Acties:
  • 0 Henk 'm!

  • Amanush
  • Registratie: Mei 2012
  • Laatst online: 18-06 09:30

Amanush

Saai persoon.

Kijk eens naar RethinkDB. Met RethinkDB kan je triggeren op nieuwe items die toegevoegd worden aan een tabel/collection.

Ga tot de luiaard, gij mier! Zie haar wegen en wordt wijs.


Acties:
  • 0 Henk 'm!

  • BramV
  • Registratie: Augustus 2007
  • Laatst online: 11-10 16:48
dure operatie = hoeveel data?

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:55

Creepy

Tactical Espionage Splatterer

roger128 schreef op maandag 23 november 2015 @ 17:07:
Hallo iedereen

Ik ben van plan een api met bijbehorende app, website etc te bouwen. Ik doe dit op basis van data die ik van een andere api (externe partij) naar binnen haal. Dit betreft een groot XML file met hierin alle data (ik kan de api vragen om specifieke delen van deze file,
Ok...
ik neem aan dat er een no-sql database achter deze api zit).
Je neemt aan? Mij ben je kwijt. Dat kan ja altijd navragen natuurlijk.. Je doet een aanname, en lijkt daar nogal wat op te baseren.....
Dit is een erg handig formaat: stel de data bevat auto's, dan hebben auto's altijd stoelen welke altijd bekleding hebben welke altijd een kleur hebben... et cetera. Deze data is erg mooi om een website op te bouwen: ik kan de XML naar een array parsen en vervolgens door de hele array loopen.

Echter wil ik ook nog andere dingen met de api. In het voorbeeld zou ik graag klanten informeren als er een nieuwe auto beschikbaar komt of een nieuwe stoel (etc). Dit is data die perfect is voor een sql database.
Want? Omdat? Need more info...
Ik zit dus een beetje in dubio: wat moet ik doen. De no-sql database gebruiken en hier alle andere functionaliteit in verwerken (lijkt me overigens een heel slecht idee)?
Want? Omdat? Need more info... En welke NoSQL DB bedoel je? Die van die externe API?
De no-sql gegevens in een sql database zetten om vervolgens vaak dezelfde informatie op te vragen als relatief dure operatie (joins e.d. terwijl de links altijd hetzelfde zijn)? Of is het een idee de databases aan elkaar te linken? En moet ik dan de ene database naar de andere linken (en in welke volgorde) of allebij updaten vanaf de api?
Want? Omdat? Need more info..
Een hoop vragen en waarschijnlijk ook een beetje een vaag verhaal maar ik hoop dat jullie me kunnen helpen. Alvast bedankt! _/-\o_
Het is nogal vaag ja. Je lijkt een NoSQL db te gebruiken, maar misschien ook niet. Maar je lijkt persee een SQL db te willen gebruiken. Doe eens gek, gooi alles in de db die jij graag wil gebruiken (met uiteraard je database model aangepast naar het type db) en ga gewoon eens testen wat het doet?

En dubbelcheck dat je de data uit je externe API mag herpubliceren, vaak mag dat simpelweg niet.
Amanush schreef op maandag 23 november 2015 @ 19:23:
Kijk eens naar RethinkDB. Met RethinkDB kan je triggeren op nieuwe items die toegevoegd worden aan een tabel/collection.
Dat kan ook prima met andere (sql) databases trouwens.

[ Voor 11% gewijzigd door Creepy op 23-11-2015 20:53 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Ik snap het ook niet helemaal, waarom zou je nu zo graag een database willen hebben waar je niet met Structured Query Language op kan querien? In je datamodel schets je nu juist allemaal vaste relaties en zeer gestructureerde data.. :p

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • page404
  • Registratie: November 2009
  • Laatst online: 19:09

page404

Website says no

Een NoSQL database is vooral zinvol als je a) vooral key-value pairs hebt en weinig structurele data en b) als je van plan bent een distributed architecture in te zetten om grote datasets parallel te verwerken.

ZIPper: Zelfstandig Interim Professional


Acties:
  • 0 Henk 'm!

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 12-10 00:11
NoSQL kan ook een document store zijn. Je zou kunnen kijken naar iets als elastic search. Dat slaat documenten op als JSON en bouwt indices op de individuele attributen. Je kunt er vervolgens heel makkelijk queries en filters op loslaten, wat me gezien je app best handig lijkt.

Je kunt ook de unieke waardes opvragen van de attributen (zie term en cardinality aggregation). Daarmee zou je bijvoorbeeld dus kunnen achterhalen welke kleuren of uitvoeringen er zijn.

Wellicht kun je de API die je aanroept ook JSON laten uitpoepen, scheelt je dan weer een conversieslag.

[ Voor 16% gewijzigd door Morrar op 27-11-2015 18:31 ]


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Document store? Elastic search? JSON? Nuttige technologie, maar niet voor dit probleem domein.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • +1 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
roger128 schreef op maandag 23 november 2015 @ 17:07:
De no-sql gegevens in een sql database zetten om vervolgens vaak dezelfde informatie op te vragen als relatief dure operatie (joins e.d. terwijl de links altijd hetzelfde zijn)?

waarschijnlijk ook een beetje een vaag verhaal
Yup, vaag verhaal. Joins zijn verschikkelijk efficient, in vergelijking met bijna elke andere zoekmethode. Er zijn eigenlijk maar twee efficientere methoden: direct indexed (meest efficient, vereist dat je alleen zoekt op een index. O(1) performance, 0 flexibiliteit in key) en key-value (erg efficient, O(1) tot O(log N) maar ondersteunt exact 1 simpele query).

Aangezien jouw probleem ingewikkelder is dan je met 1 query opgelost gaat krijgen, maar je data wel gestructureerd is, is een RDBMS dus de meest efficiente methode. Maak je geen zorgen over de JOINs, zorg alleen dat die JOINs een index kunnen gebruiken.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
MSalters schreef op dinsdag 01 december 2015 @ 12:32:
Document store? Elastic search? JSON? Nuttige technologie, maar niet voor dit probleem domein.
Gewoon even ter mijner info, waarom niet geschikt voor dit probleem domein?

Ik overzie het probleem domein namelijk nog niet helemaal, is die xml vast gestructureerd of kan die veranderen.
Vallen al de TS zijn wensen wel binnen de velden van de xml of moeten er nog custom functies aangehangen worden?
Wat is de grootte van de data, moet er fulltext gezocht kunnen worden?

Imho is het voornamelijk afhankelijk van de xml, maar daar wordt geen gegeven over verstrekt dus kan ik het probleem domein niet overzien...

Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Gomez12 schreef op dinsdag 01 december 2015 @ 13:49:
[...]
Ik overzie het probleem domein namelijk nog niet helemaal, is die xml vast gestructureerd ...
Uit de TS: "Dit is een erg handig formaat: stel de data bevat auto's, dan hebben auto's altijd stoelen welke altijd bekleding hebben welke altijd een kleur hebben... et cetera"

Kortom, alles behalve ongestructureerde data.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein

Pagina: 1