2017-02-18 6 views
0

Ich baue eine App über Firebase, und ich habe eine Frage über die Skalierbarkeit meines Datenbankknotens. Ich habe meine Daten dezentralisiert, aber wenn ich versuche, Beiträge zu bewerten (basierend auf # likes), kann ich keine gute Lösung finden. Ich habe eine Seite mit den Top 10 der beliebtesten Lieder der letzten 30 Tage, aber ich habe Bedenken wegen dieser Frage, wenn die App skaliert. Zu diesem Zeitpunkt werden ein paar hundert bis ein paar tausend Songs veröffentlicht, aber was ist, wenn dieser Knoten aus ein paar Millionen besteht?Firebase skalierte Abfragen auf Ranking

Die Struktur ist wie folgt:

"totalSongs" : { 
    "-KHjnJcG2av6nyIEP1Wu" : { 
     "author" : "64df19dd-68fb-43cb-ab1b-b8e9f55cf", 
     "date" : 1463238347457, 
     "key" : "KHjnJcG2av6nyIEP1Wu", 
     "likesCount" : 3, 
     "name" : "anna", 
     "reasonUpload" : "-its good mayne", 
     "uploadTitle" : "A tribe called quest - we got the jazz", 
     "uploadUrl" : "cxN4nKk2cfk" 
    }, 
    "-KHkUAJ48h-3k6HIDOri" : { 
     "author" : "64df19dd-68fb-43cb-ab1b-b8e9f51cf", 
     "date" : 1463249843668, 
     "key" : "-KHkUAJ48h-3k6HIDOri", 
     "likesCount" : 6, 
     "name" : "peter", 
     "reasonUpload" : "-summer vibes", 
     "uploadTitle" : "Kool & The Gang", 
     "uploadUrl" : "2SFt7JHwJeg" 
    } 
} 

Die obige JSON zwei Uploads zeigt. Ich kann sie über 'LikesCount' einordnen und das funktioniert (über angularJS, ng-repeat, orderBy: '-likesCount'), aber was ist, wenn es 4 Millionen Uploads gibt? Ich habe darüber nachgedacht, einen neuen Knoten (z. B. totalSongs2, totalSongs3) alle 30 Tage zu erstellen, um einen Knoten zu haben, der aus den Uploads in diesem Zeitraum besteht, aber das scheint etwas seltsam zu sein. Wie schwer ist es für Firebase, einen solchen Knoten abzufragen und wie kann ich das anders machen?

Antwort

0

4 Millionen Uploads? Ich nehme an, Sie sind auf Firebase-Paket gekauft, um diese riesige Menge zu tun.

Es hängt davon ab, wie Sie Ihre JSON-Struktur organisieren möchten. Ich hätte vorgeschlagen, dies entsprechend den Datumsangaben zu implementieren, und wenn Sie die untergeordneten Knoten erweitern, verfügen Sie über eindeutige Kennungen, die die gesamten in diesem Zeitraum hochgeladenen Songs auflisten.

Jede weitere komplizierte zu mehr Kindknoten machen Ihren Code chaotisch. Es ist nicht schwierig für Firebase, etwas abzufragen, das Problem könnte sein, wie schwer die Aufgabenleistung bei der gleichzeitigen Verbindung sein wird? Es gibt ein Limit für das kostenlose Paket, aber unbegrenzt für das gekaufte Paket.

JSON benötigt nicht viel Festplattennutzung, aber die Firebase-Struktur könnte besser für die Scabability verwendet werden, wenn Sie 10 Datenbanken in ihrem kostenlosen Paket verwenden.

+0

Vielen Dank für Ihren Kommentar. 4 Millionen Uploads sind nur eine Hypothese, aber der Grund für meine Frage ist, dass, wenn das zu Problemen in der Zukunft führt, ich sie jetzt lieber angehen würde. Und ja, innerhalb weniger Monate werde ich das gekaufte Paket nutzen. – Zizazorro

+1

@Zizazorro 4 Millionen für das gekaufte Paket sollte kein Problem sein. Das Kaufpaket verfügt über BigQuery SQL-Abfragen, sodass Sie viele Gigabytes verwenden können. Ich arbeite mit Big Data und BigQuery auf Firebase gekauften Paket kann Millionen völlig in Ordnung. Skalierbarkeit wird kein Problem sein, Firebase hat das für ihre Kunden abgedeckt. – user7568042

+0

Schön, ich werde das untersuchen! Vielen Dank – Zizazorro