1

Ich bin auf der Suche nach einem guten Weg, um bis zu 20 Terabyte Daten (Social Media Beiträge, Twitter Daten, etc.) in der Cloud zu speichern und schrittweise in Elasticsearch (facettierten zu ermöglichen) Suche), damit es schnell gesucht werden kann. Ich würde das in 2 Schritte aufteilen. Speichern der Daten im Speicher und Indizierung (am nächsten Tag oder nächsten Monat). Ich habe Redis erwähnt. Wäre das angemessen? Wäre es besser, AWS und S3 oder Google dazu zu verwenden? Gibt es einen besseren Weg, dies mit Redis zu tun? Sobald die Daten indexiert sind, brauche ich die Originaldaten nicht mehr.speichern Terabytes von Daten und später importieren nach Elasticsearch

+0

Es ist mir nicht klar, was Sie fragen. Der Datenspeicher ist nur ein kleiner Teil des Problems. Es wird der Datenspeicher gelesen, die Transformationen zu JSON, das Laden von Massen, das Index-/Shard-Routing und das Balancing berücksichtigt. –

+0

Wäre es sinnvoll, 1 Terabyte Daten in Redis zu speichern, um sie später in Elasticsearch zu importieren? – Jen

+0

Sie können Google Cloud Storage zum Speichern Ihrer Daten verwenden. Sie können zwischen verschiedenen Speicherarten wählen: Standardspeicher, Durable Reduced Availability (DRA) -Speicher und Nearline Storage. Jede Art von Speicher verfügt über unterschiedliche Verfügbarkeit, Latenz, Durchsatzeigenschaften und Preisgestaltung. Alle Speicherklassen bieten die gleiche hohe Haltbarkeit. Für weitere Informationen besuchen Sie [diesen Link] (https://cloud.google.com/storage/docs/storage-classes). Sie können den Elasticserach-Cluster mit wenigen Klicks auf GCP mit [Cloud Launcher] (https://console.cloud.google.com/launcher) hochfahren. – Faizan

Antwort

2

AWS ist eine natürliche Passform, die S3-Uploads sind kostenlos. Sie haben ein Hosting von ElasticSearch und Redis/ElasticCache, oder Sie können Ihr eigenes auf EC2 hosten. Redis ist ein speicherinterner Schlüsselwertspeicher, der für die dynamische Suche nicht gut geeignet ist, während ElasticSearch ein persistenter Dokumentenspeicher ist, der perfekt für die Suche und Aggregation geeignet ist.

Wenn Sie S3-Ereignisse aktivieren, kann ein Dateierstellungs-Ereignis eine in Python oder einer anderen Sprache geschriebene AWS Lambda auslösen, um Ihre Daten automatisch zu lesen, sobald eine Datei angezeigt und mit der ElasticSearch http API eingefügt wird. Die ersten 1 Million Lambda-Exekutionen pro Monat sind kostenlos. Mit den ElasticSearch-Indexeigenschaften können Sie auswählen, welche Felder automatisch für die Suche indiziert werden.

Wenn Sie mit den AWS-Daten fertig sind, löschen Sie sie oder ändern Sie ihren Speichertyp auf Seltener Zugriff oder reduzierte Redundanz, um Ihre Rechnung zu speichern. Ich nutze http://www.insight4storage.com/, um meine S3-Kosten zu senken, indem ich meine Trends bei der Speicherauslastung aufspüre.

+0

Danke für eine großartige Roadmap. Um dies zu verdeutlichen, wird AWS Lamba die eingehenden Daten in Elasticsearch schreiben. Wenn ich 3 Millionen pro Tag hätte, würde das 60 Cent/Tag oder $ 18/Monat kosten und jeder dieser 3 Millionen könnte mehrere Felder zu Elasticsearch schreiben, oder? – Jen

+0

Ja, die Lamba könnte die Datei lesen, auf die das Ereignis verweist, und die Daten in elasticsearch über ihre HTTP-API einfügen. – TJCloudmin