nosql Beispiel, der Motor?
-
25-09-2019 - |
Frage
a) Ich habe 1000000 Domain-Namen
b) Jede Domain hat über 100.000 Websites
c) jede Seite hat etwa 10.000 Besucher täglich / (5000 eindeutige Besuche täglich)
d) Als Inhaber aller dieser Websites, ich möchte sehen, wie viele Besucher auf ausgewählten Standorten hatte ich in einem ausgewählten Zeitraum, zum Beispiel:
Wie viele einzigartigen Besucher waren vom 4. Dezember 1987 bis zum 23. April 2010 über mydomain.com/tutorials
Wie viele einzigartigen Besucher vom 30. August 1996 waren bis zum 16. Juli 2009 über yourdomain.com/reference?
Für eine traditionelle SQL-Datenbank ist dies ein Schmerz.
Was ist der cleverste Ansatz? Welche Speicher-Engine verwenden?
Ich habe nur SQL-Kenntnisse. Alle zusätzlichen Ressourcen sehr geschätzt.
Lösung
Mit den Zahlen und möglichen Abfragen ähnlich denen, die Sie aufgeführt haben würde ich sehr viel dobut, dass eine einfache SQL (PSQL / TSQL) Datenbank würde Ihre Bedürfnisse erfüllen. Statt irgendeine Form von OLAP Sie werden wie SSAS Verarbeitung benötigen (SQL Server Analysis Services) oder ein ähnliches Angebot von Oracle.
Andere Tipps
Ich denke, DB der beste Ansatz für diese Option ist Sie müssen nur ein paar Tische cr4eate und die Daten zwischen ihnen steht, z verteilt:.
Table: Domains [id, name]
Table: Sites [id, domain_id, name]
Table: Visits [id, site_id, date]
so können Sie wählen, sagen wir mal:
SELECT COUNT(v.id)
FROM Visits AS v
RIGHT JOIN Sites AS s
ON v.site_id = s.id
RIGHT JOIN Domains AS d
ON s.domain_id = d.id
WHERE d.name = 'mydomain.com'
AND s.name = 'tutorials'
AND v.date BETWEEN startDate AND endDate
startdate und endDate sollte durch Programmiersprache (PHP, ASP) übergeben werden, oder sie können in der SELECT
manuell eingestellt werdenIch hoffe, das hilft.