{"id":37585,"date":"2019-10-31T22:18:27","date_gmt":"2019-10-31T19:18:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql\/"},"modified":"2019-10-31T22:18:27","modified_gmt":"2019-10-31T19:18:27","slug":"kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql","title":{"rendered":"Wie man in die Augen von Cassandra blickt, ohne dabei Daten, Stabilit\u00e4t und Vertrauen in NoSQL zu verlieren.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Wie man in die Augen von Cassandra blickt, ohne dabei Daten, Stabilit\u00e4t und Vertrauen in NoSQL zu verlieren.\" src=\"\/wp-content\/uploads\/2019\/08\/4845d37a9928f888639c4ebeb7807787.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<p>Es wird gesagt, dass man im Leben alles mindestens einmal ausprobieren sollte. Wenn Sie an relationale Datenbanken gew\u00f6hnt sind, sollten Sie sich aus allgemeinem Interesse unbedingt praktisch mit NoSQL vertrautmachen. Angesichts der rasanten Entwicklung dieser Technologie gibt es zahlreiche kontroverse Meinungen und hitzige Debatten, die das Interesse an diesem Thema besonders anheizen.<br \/>\nWenn man die Essenz all dieser Meinungsverschiedenheiten betrachtet, wird deutlich, dass sie auf falschen Ans\u00e4tzen beruhen. Diejenigen, die NoSQL-Datenbanken dort einsetzen, wo sie sinnvoll sind, sind zufrieden und profitieren von den Vorteilen dieser L\u00f6sung. Die Experimentatoren, die auf diese Technologie als Allheilmittel setzen, wo sie \u00fcberhaupt nicht anwendbar ist, erleben Entt\u00e4uschungen, verlieren die St\u00e4rken relationaler Datenbanken, ohne dabei nennenswerte Vorteile zu gewinnen.<\/p>\n<p><\/p>\n<p>Ich werde von unseren Erfahrungen bei der Implementierung einer auf der Cassandra-Datenbank basierenden L\u00f6sung berichten: mit welchen Herausforderungen wir konfrontiert waren, wie wir aus schwierigen Situationen herausgekommen sind, ob es uns gelungen ist, Vorteile aus der Nutzung von NoSQL zu ziehen und wo zus\u00e4tzliche Anstrengungen\/Mittel investiert werden mussten.<br \/>\nDie Ausgangsaufgabe besteht darin, ein System zu entwickeln, das Anrufe in einem bestimmten Speicher aufzeichnet.<\/p>\n<p><\/p>\n<p>Das Funktionsprinzip des Systems ist wie folgt. Es werden Dateien mit einer bestimmten Struktur eingelesen, die den Anruf beschreibt. Anschlie\u00dfend sorgt die Anwendung daf\u00fcr, dass diese Struktur in die entsprechenden Spalten gespeichert wird. Die gespeicherten Anrufe werden dann verwendet, um Informationen \u00fcber den Datenverbrauch der Benutzer anzuzeigen (Abrechnungen, Anrufe, Guthistorie).<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wie man in die Augen von Cassandra blickt, ohne dabei Daten, Stabilit\u00e4t und Vertrauen in NoSQL zu verlieren.\" src=\"\/wp-content\/uploads\/2019\/08\/c7b095dc8879011adb751c96427af512.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Warum Cassandra gew\u00e4hlt wurde, ist verst\u00e4ndlich \u2013 sie schreibt wie ein Maschinengewehr, ist leicht skalierbar und ausfallsicher.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Nun, das hat uns die Erfahrung gelehrt.<\/h2>\n<p><\/p>\n<p>Ja, ein ausgefallener Knoten ist kein Drama. Das ist der Kern der Ausfallsicherheit von Cassandra. Aber <b>ein Knoten kann zwar leben, aber trotzdem in der Leistung nachlassen.<\/b>Wie sich herausstellte, wirkt sich das sofort auf die Leistung des gesamten Clusters aus.<\/p>\n<p><\/p>\n<p><b>Cassandra kann nicht dort absichern, wo Oracle mit seinen Constraints gerettet hat.<\/b>Und wenn der Autor der Anwendung das im Voraus nicht verstanden hat, ist ein eingehender Duplikat f\u00fcr Cassandra nicht weniger g\u00fcltig als das Original. Kommt es, wird es eingesetzt.<\/p>\n<p><\/p>\n<p>Die kostenlose Cassandra \u201eout of the box\u201c gefiel der IT-Sicherheit pl\u00f6tzlich gar nicht. <b>Es gibt kein Benutzungsprotokoll und keine Rechteverteilung.<\/b>. Informationen zu Anrufen fallen unter personenbezogene Daten, was bedeutet, dass alle Versuche, diese in irgendeiner Weise anzufordern oder zu \u00e4ndern, protokolliert werden m\u00fcssen, um eine sp\u00e4tere \u00dcberpr\u00fcfung zu erm\u00f6glichen. Zudem ist es notwendig, die Rechte auf verschiedene Ebenen f\u00fcr unterschiedliche Benutzer zu differenzieren. Ein einfacher Betriebstechniker und ein Superadmin, der das gesamte Keyspace problemlos l\u00f6schen kann, sind unterschiedliche Rollen mit verschiedenen Verantwortlichkeiten und Kompetenzen. Ohne eine solche Trennung der Zugriffsrechte wird der Wert und die Integrit\u00e4t der Daten schneller in Frage gestellt, als es bei einem Konsistenzniveau von ANY der Fall w\u00e4re. <\/p>\n<p><\/p>\n<p>Wir haben nicht ber\u00fccksichtigt, dass f\u00fcr Anrufe sowohl ernsthafte Analysen als auch regelm\u00e4\u00dfige Stichproben unter verschiedenen Bedingungen erforderlich sind. Da die ausgew\u00e4hlten Aufzeichnungen sp\u00e4ter gel\u00f6scht und \u00fcberschrieben werden sollen (im Rahmen dieser Aufgabe m\u00fcssen wir den Prozess der Aktualisierung von Daten unterst\u00fctzen, wenn uns urspr\u00fcnglich falsche Daten zugef\u00fchrt wurden), ist Cassandra hier nicht unser Freund. <b>Cassandra ist wie eine Sparkasse \u2013 man kann sie bequem f\u00fcllen, aber man kann damit nicht z\u00e4hlen.<\/b><\/p>\n<p><\/p>\n<p><b>Haben Sie Probleme beim \u00dcbertragen von Daten in Testumgebungen?<\/b> (5 Knoten im Test im Vergleich zu 20 in der Produktion). In diesem Fall kann das Dumpen nicht verwendet werden.<\/p>\n<p><\/p>\n<p>Problem mit den Aktualisierungen des Datenschemas der Anwendung, die in Cassandra schreibt. <b>Ein Rollback kann zahlreiche Tombstones erzeugen, was auf unvorhersehbare Weise die Leistung beeintr\u00e4chtigen kann.<\/b>. Cassandra ist f\u00fcr das Schreiben optimiert und denkt vor dem Schreiben nicht viel nach. Jede Operation mit bestehenden Daten ist ebenfalls ein Schreibvorgang. Das hei\u00dft, wenn wir \u00dcberfl\u00fcssiges l\u00f6schen, erzeugen wir einfach noch mehr Schreibvorg\u00e4nge, und nur ein Teil davon wird als Tombstone markiert.<\/p>\n<p><\/p>\n<p>Timeouts beim Einf\u00fcgen. Cassandra ist beim Schreiben hervorragend, aber <b>manchmal kann der eingehende Datenstrom erheblich verwirrend sein.<\/b>. Dies geschieht, wenn die Anwendung anf\u00e4ngt, einige Datens\u00e4tze im Kreis zu bearbeiten, die aus bestimmten Gr\u00fcnden nicht eingef\u00fcgt werden k\u00f6nnen. Und wir ben\u00f6tigen einen echten DBA, der gc.log, System- und Debug-Logs auf langsame Abfragen und Metriken zu ausstehenden Kompaktierungen \u00fcberwacht.\n<\/p>\n<p><\/p>\n<p>Mehrere Rechenzentren im Cluster. <b>Woher lesen und wohin schreiben?<\/b> <br \/>\nKann man das Lesen und Schreiben m\u00f6glicherweise trennen? Und wenn ja, sollte n\u00e4her an der Anwendung der DC zum Schreiben oder zum Lesen sein? Und entsteht nicht ein echtes Split-Brain-Szenario, wenn wir die Konsistenzstufe falsch w\u00e4hlen? Es gibt viele Fragen und unerkundete Einstellungen sowie M\u00f6glichkeiten, die sehr verlockend sind.\n<\/p>\n<p><\/p>\n<h2>Wie wir es gel\u00f6st haben<\/h2>\n<p><\/p>\n<p><b>Um die Knotenschwankungen zu vermeiden, haben wir SWAP deaktiviert<\/b>. Und nun sollte der Knoten bei Speichermangel ausfallen, anstatt gro\u00dfe gc-Pausen zu erzeugen.<\/p>\n<p><\/p>\n<p>Wir setzen nicht mehr auf die Logik in der DB. <b>Die Entwickler des Programms lernen um und beginnen aktiv, sich in ihrem eigenen Code abzusichern.<\/b> Eine ideale klare Trennung von Speicherung und Verarbeitung von Daten.<\/p>\n<p><\/p>\n<p><b>Wir haben Unterst\u00fctzung von DataStax erworben.<\/b> Die Boxed Cassandra wird nicht mehr weiterentwickelt (letzter Commit im Februar 2018). Gleichzeitig bietet DataStax einen ausgezeichneten Service sowie eine Vielzahl an angepassten und \u00fcberarbeiteten L\u00f6sungen f\u00fcr bestehende IT-Systeme.<\/p>\n<p><\/p>\n<p>Ich m\u00f6chte auch darauf hinweisen, dass Cassandra nicht besonders benutzerfreundlich f\u00fcr Abfragen ist. Nat\u00fcrlich ist CQL ein gro\u00dfer Schritt in Richtung Benutzerfreundlichkeit (im Vergleich zu Trift). Wenn jedoch ganze Abteilungen daran gew\u00f6hnt sind, mit solchen bequemen Joins zu arbeiten, frei nach beliebigen Feldern filtern zu k\u00f6nnen und Optimierungsm\u00f6glichkeiten f\u00fcr Abfragen zu haben, erscheint ihnen eine L\u00f6sung mit Cassandra feindlich und unklug. Wir haben begonnen, zu kl\u00e4ren, wie wir unseren Kollegen bei der Datenauswahl helfen k\u00f6nnen. <\/p>\n<p><\/p>\n<p>Wir haben zwei Optionen in Betracht gezogen. Bei der ersten Option schreiben wir die Aufrufe nicht nur in C*, sondern auch in die Archiv-Datenbank Oracle. Im Gegensatz zu C* enth\u00e4lt diese Datenbank jedoch nur die Aufrufe des aktuellen Monats (eine ausreichende Speicherdauer f\u00fcr die Tarifierungsf\u00e4lle). Hierbei trat sofort folgendes Problem auf: Wenn wir synchron schreiben, verlieren wir alle Vorteile von C*, die mit der schnellen Einf\u00fcgung verbunden sind; wenn wir asynchron arbeiten, gibt es keine Garantie, dass alle ben\u00f6tigten Aufrufe \u00fcberhaupt in Oracle gelangen. Es gab jedoch einen gro\u00dfen Vorteil: F\u00fcr den Betrieb bleibt der vertraute PL\/SQL Developer, das hei\u00dft, wir k\u00f6nnen das Muster \u201eFassade\u201c praktisch umsetzen. Alternative Option: Wir implementieren einen Mechanismus, der die Aufrufe aus C* extrahiert, weitere Daten zur Anreicherung aus den entsprechenden Tabellen in Oracle abruft, die erhaltenen Abfragen zusammenf\u00fchrt und uns das Ergebnis liefert, das wir dann auf irgendeine Weise verwenden (rollbacken, wiederholen, analysieren, bewundern). Nachteile: Der Prozess ist ziemlich mehrstufig, au\u00dferdem fehlt eine Benutzeroberfl\u00e4che f\u00fcr die Betriebstechnik.<\/p>\n<p><\/p>\n<p>Letztendlich haben wir uns doch f\u00fcr die zweite Option entschieden. <b>F\u00fcr Abfragen aus verschiedenen Quellbanken verwendeten wir Apache Spark.<\/b> Der Mechanismus basiert auf Java-Code, der anhand der angegebenen Schl\u00fcssel (Abonnent, Zeitpunkt des Anrufs \u2013 Schl\u00fcssel des Abschnitts) Daten aus C* abruft sowie ben\u00f6tigte Informationen aus einer anderen Datenbank f\u00fcr die Anreicherung. Anschlie\u00dfend werden diese in seinem Speicher zusammengef\u00fchrt und das Ergebnis in einer Ergebnistabelle ausgegeben. \u00dcber Spark wurde eine Weboberfl\u00e4che erstellt, die sich als gut nutzbar herausgestellt hat.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wie man in die Augen von Cassandra blickt, ohne dabei Daten, Stabilit\u00e4t und Vertrauen in NoSQL zu verlieren.\" src=\"\/wp-content\/uploads\/2019\/08\/5754363569f159dd7b86972bb0cef732.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Bei der Bew\u00e4ltigung der Datenaktualisierungsaufgabe hat das Team erneut mehrere L\u00f6sungsans\u00e4tze in Betracht gezogen. Sowohl der Transfer \u00fcber Sstloader als auch die Option, den Cluster in der Testumgebung in zwei Teile zu splitten, wobei jeder Teil abwechselnd in einen Cluster mit den Produktionsdaten eingebunden wird, um von dort zu speisen. Bei der Aktualisierung des Tests war geplant, die Teile zu tauschen: Der Teil, der im Test gearbeitet hat, wird bereinigt und in die Produktion \u00fcberf\u00fchrt, w\u00e4hrend der andere separat mit den Daten arbeitet. Aber nach weiterer \u00dcberlegung haben wir die Daten, die es wert sind, \u00fcbertragen zu werden, als wertvoller eingesch\u00e4tzt und erkannt, dass die Aufrufe selbst eine inkonsistente Entit\u00e4t f\u00fcr Tests darstellen, die im Bedarfsfall schnell generiert werden. Der Produktionsdatensatz hat daher keinen Wert f\u00fcr den Transfer in den Test. Es gibt einige Speicherobjekte, die transferiert werden sollten, aber es sind wirklich nur ein paar Tabellen, die nicht allzu gro\u00df sind. Daher <b>ist Spark erneut zur L\u00f6sung gekommen, mit dessen Hilfe wir ein Skript zum Transfer von Daten zwischen den Tabellen in der Produktions- und Testumgebung geschrieben und aktiv genutzt haben.<\/b><\/p>\n<p><\/p>\n<p><b>Unsere aktuelle Deployment-Politik erm\u00f6glicht es uns, ohne Rollbacks zu arbeiten.<\/b> Vor der Promotion ist ein obligater Testlauf notwendig, bei dem Fehler weniger gravierend sind. Im Falle eines Misserfolgs kann der Case Space immer gel\u00f6scht und das gesamte Schema neu aufgesetzt werden.<\/p>\n<p><\/p>\n<p>Um eine durchgehende Verf\u00fcgbarkeit von Cassandra zu gew\u00e4hrleisten, ist ein DBA erforderlich, und das ist noch nicht alles. <b>Alle, die mit der Anwendung arbeiten, sollten verstehen, wo und wie sie die aktuelle Situation \u00fcberpr\u00fcfen und Probleme rechtzeitig diagnostizieren k\u00f6nnen.<\/b> Daf\u00fcr nutzen wir aktiv DataStax OpsCenter (Verwaltung und \u00dcberwachung der Workloads), systemmetriken des Cassandra Drivers (Anzahl der Schreib-Timeouts in C*, Anzahl der Lese-Timeouts aus C*, maximale Latenz usw.), und \u00fcberwachen die Funktionalit\u00e4t der Anwendung, die mit Cassandra arbeitet.\n<\/p>\n<p><\/p>\n<p>Als wir \u00fcber die vorherige Frage nachdachten, wurde uns klar, wo unser Haupt Risiko liegen k\u00f6nnte. Es sind die Datenanzeigeformate, die Informationen aus mehreren unabh\u00e4ngigen Anfragen an den Speicher abrufen. Dadurch k\u00f6nnen wir recht inkonsistente Informationen erhalten. Dieses Problem w\u00e4re jedoch ebenso relevant, wenn wir nur mit einem einzelnen Rechenzentrum arbeiten w\u00fcrden. Daher ist es in diesem Fall am sinnvollsten, eine Batch-Funktion f\u00fcr die Datenabfrage in einer externen Anwendung zu implementieren, die die Daten in einem einheitlichen Zeitrahmen bereitstellt. Was die Trennung von Lese- und Schreiboperationen hinsichtlich der Leistung betrifft, so wurde uns hier das Risiko bewusst, dass bei einem vor\u00fcbergehenden Verbindungsverlust zwischen den Rechenzentren zwei v\u00f6llig inkonsistente Cluster entstehen k\u00f6nnten.<\/p>\n<p><\/p>\n<p>Daher haben wir derzeit <b>uns f\u00fcr den Konsistenzgrad FOR_WRITE EACH_QUORUM und f\u00fcr das Lesen LOCAL_QUORUM entschieden.<\/b><\/p>\n<p><\/p>\n<h2>Kurze Eindr\u00fccke und Schlussfolgerungen<\/h2>\n<p><\/p>\n<p>Um die entstandene L\u00f6sung hinsichtlich der Betriebskosten und der Perspektiven f\u00fcr die Weiterentwicklung zu bewerten, haben wir \u00fcberlegt, wo wir eine solche Entwicklung noch anwenden k\u00f6nnten.<\/p>\n<p><\/p>\n<p>Wenn wir schnell darauf eingehen, bezieht sich das Scoring von Daten f\u00fcr Programme wie \"Zahle, wenn es dir passt\" (wir laden Informationen in S* hoch, Berechnungen erfolgen mit Spark-Skripten), auf die Erfassung von Reklamationen mit Aggregation nach Bereichen, Speicherung von Rollen und Berechnung mittels einer rollenspezifischen Zugriffsrechte-Matrix. <\/p>\n<p><\/p>\n<p>Wie wir sehen, ist das Repertoire breit und vielf\u00e4ltig. Wenn es um die Wahl zwischen Anh\u00e4ngern und Gegnern von NoSQL geht, schlie\u00dfen wir uns den Bef\u00fcrwortern an, da wir die Vorteile erfahren haben, genau dort, wo wir es erwartet haben.<\/p>\n<p><\/p>\n<p>Selbst die Cassandra-Variante \"out of the box\" erm\u00f6glicht eine horizontale Skalierung in Echtzeit und l\u00f6st problemlos das Problem der Datenvergr\u00f6\u00dferung im System. Es ist uns gelungen, einen sehr stark belasteten Mechanismus zur Berechnung der Aggregate f\u00fcr Anrufe in einen eigenen Bereich auszulagern und zudem das Schema und die Logik der Anwendung zu trennen, wodurch wir von der sch\u00e4dlichen Praxis der Erstellung von benutzerdefinierten Jobs und Objekten in der Datenbank Abstand genommen haben. Wir haben die M\u00f6glichkeit erhalten, auszuw\u00e4hlen und zu konfigurieren, in welchen Rechenzentren wir Berechnungen durchf\u00fchren und in welchen wir Daten speichern, und uns dadurch vor Ausf\u00e4llen sowohl einzelner Knoten als auch des gesamten Rechenzentrums abgesichert.<\/p>\n<p><\/p>\n<p>Wenn wir unsere Architektur auf neue Projekte anwenden und bereits \u00fcber erste Erfahrungen verf\u00fcgen, sollten wir die oben beschriebenen Nuancen sofort ber\u00fccksichtigen, um Fehler zu vermeiden und Schwierigkeiten, die von Anfang an nicht zu vermeiden waren, zu gl\u00e4tten.<\/p>\n<p><\/p>\n<p>Zum Beispiel <b>Die Aktualisierungen von Cassandra rechtzeitig verfolgen<\/b>, denn viele Probleme, die wir erfahren haben, waren bereits bekannt und wurden behoben.<\/p>\n<p><\/p>\n<p><b>Datenbank und Spark nicht auf denselben Knoten installieren<\/b> (oder strikt nach der maximalen Ressourcennutzung trennen), da Spark mehr RAM verwenden kann als vorgesehen und wir schnell mit Problem Nummer 1 von unserer Liste konfrontiert werden.<\/p>\n<p><\/p>\n<p><b>Die \u00dcberwachung und das Betriebswissen bereits in der Testphase des Projekts ausbauen. <\/b><b>Von Anfang an m\u00f6glichst alle potenziellen Nutzer unserer L\u00f6sung ber\u00fccksichtigen<\/b>, denn davon wird letztendlich die Struktur der Datenbank abh\u00e4ngen.<\/p>\n<p><\/p>\n<p>\u00dcberpr\u00fcfen Sie das entstehende Schema mehrmals auf m\u00f6gliche Optimierungen. Identifizieren Sie, welche Felder serialisiert werden k\u00f6nnen. Verstehen Sie, welche zus\u00e4tzlichen Tabellen erforderlich sind, um die Informationen korrekt und effizient zu erfassen und sie dann auf Anfrage bereitzustellen (unter der Annahme, dass dieselben Daten in verschiedenen Tabellen gespeichert werden k\u00f6nnen, wobei verschiedene Kriterien ber\u00fccksichtigt werden, kann dies die CPU-Zeit f\u00fcr Leseanfragen erheblich einsparen).<\/p>\n<p><\/p>\n<p>Nicht schlecht <b>Planen Sie sofort die Implementierung von TTL und die Bereinigung veralteter Daten ein.<\/b><\/p>\n<p><\/p>\n<p>Beim Export von Daten aus Cassandra <b>sollte die Logik der Anwendung nach dem FETCH-Prinzip arbeiten, sodass nicht alle Zeilen auf einmal in den Speicher geladen werden, sondern in Chargen ausgew\u00e4hlt werden.<\/b><\/p>\n<p><\/p>\n<p>Es ist ratsam, vor der Umstellung des Projekts auf die beschriebene L\u00f6sung <b>die Ausfallsicherheit des Systems zu \u00fcberpr\u00fcfen, indem eine Reihe von Stresstests durchgef\u00fchrt werden.<\/b>, wie etwa Datenverluste in einem Rechenzentrum, die Wiederherstellung besch\u00e4digter Daten \u00fcber einen bestimmten Zeitraum sowie Netzwerkprobleme zwischen den Rechenzentren. Solche Tests erm\u00f6glichen nicht nur eine Bewertung der Vor- und Nachteile der vorgeschlagenen Architektur, sondern bieten auch wertvolle praktische Erfahrungen f\u00fcr die Ingenieure, die sie durchf\u00fchren. Die erlernten F\u00e4higkeiten werden von unsch\u00e4tzbarem Wert sein, falls Systemausf\u00e4lle in der Praxis eintreten.<\/p>\n<p><\/p>\n<p>Wenn wir mit sensibler Information arbeiten (wie etwa Daten f\u00fcr die Abrechnung oder die Berechnung von Kundenschulden), sollten wir auch den Tools Beachtung schenken, die das Risiko reduzieren, das aufgrund der Besonderheiten der Datenbankmanagementsysteme entsteht. Beispielsweise k\u00f6nnte die Nutzung des Tools nodesync (Datastax) in Erw\u00e4gung gezogen werden, w\u00e4hrend wir eine optimale Strategie f\u00fcr dessen Verwendung entwickeln, um <b>aus Gr\u00fcnden der Konsistenz keine \u00fcberm\u00e4\u00dfige Last auf Cassandra zu erzeugen<\/b> und es ausschlie\u00dflich f\u00fcr bestimmte Tabellen zu bestimmten Zeiten zu verwenden.<\/p>\n<p><\/p>\n<p>Nun, nach einem halben Jahr mit Cassandra? Insgesamt gibt es keine ungel\u00f6sten Probleme. Schwere Ausf\u00e4lle und Datenverlust haben wir ebenfalls vermieden. Ja, wir mussten \u00fcber Kompensationen f\u00fcr einige zuvor nicht aufgetretene Probleme nachdenken, aber letztendlich hat das unsere Architekturentscheidung nicht wesentlich getr\u00fcbt. Wenn Sie bereit sind, etwas Neues auszuprobieren und nicht entt\u00e4uscht werden wollen, sollten Sie sich darauf einstellen, dass nichts umsonst ist. Sie werden mehr Zeit damit verbringen m\u00fcssen, sich einzuarbeiten, die Dokumentation zu studieren und Ihre eigenen H\u00fcrden zu identifizieren als bei alten Legacy-L\u00f6sungen, und keine Theorie kann Ihnen im Voraus sagen, welche H\u00fcrden Sie konkret erwarten.<\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465333\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0413\u043e\u0432\u043e\u0440\u044f\u0442, \u0432 \u0436\u0438\u0437\u043d\u0438 \u0432\u0441\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0440\u0430\u0437. \u0418 \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0421\u0423\u0411\u0414, \u0442\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0441 NoSQL \u0441\u0442\u043e\u0438\u0442 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441 \u0432 \u0441\u0438\u043b\u0443 \u0431\u0443\u0440\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u044b\u0445 \u043c\u043d\u0435\u043d\u0438\u0439 \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0445 \u0441\u043f\u043e\u0440\u043e\u0432 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443, \u0447\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u043e\u0433\u0440\u0435\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441. \u0415\u0441\u043b\u0438 \u0432\u043d\u0438\u043a\u043d\u0443\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28210,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37585","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0413\u043e\u0432\u043e\u0440\u044f\u0442, \u0432 \u0436\u0438\u0437\u043d\u0438 \u0432\u0441\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0440\u0430\u0437. \u0418 \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0421\u0423\u0411\u0414, \u0442\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0441 NoSQL \u0441\u0442\u043e\u0438\u0442 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441 \u0432 \u0441\u0438\u043b\u0443 \u0431\u0443\u0440\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u044b\u0445 \u043c\u043d\u0435\u043d\u0438\u0439 \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0445 \u0441\u043f\u043e\u0440\u043e\u0432 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443, \u0447\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u043e\u0433\u0440\u0435\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441. \u0415\u0441\u043b\u0438 \u0432\u043d\u0438\u043a\u043d\u0443\u0442\u044c\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0433\u043b\u0430\u0437\u0430 \u041a\u0430\u0441\u0441\u0430\u043d\u0434\u0440\u0435 \u0438 \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0435, \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u0435\u0440\u0443 \u0432 NoSQL | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0413\u043e\u0432\u043e\u0440\u044f\u0442, \u0432 \u0436\u0438\u0437\u043d\u0438 \u0432\u0441\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0440\u0430\u0437. \u0418 \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0421\u0423\u0411\u0414, \u0442\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0441 NoSQL \u0441\u0442\u043e\u0438\u0442 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441 \u0432 \u0441\u0438\u043b\u0443 \u0431\u0443\u0440\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u044b\u0445 \u043c\u043d\u0435\u043d\u0438\u0439 \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0445 \u0441\u043f\u043e\u0440\u043e\u0432 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443, \u0447\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u043e\u0433\u0440\u0435\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441. \u0415\u0441\u043b\u0438 \u0432\u043d\u0438\u043a\u043d\u0443\u0442\u044c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:18:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:18:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wie man Cassandra in die Augen schaut, ohne dabei Daten, Stabilit\u00e4t und Vertrauen in NoSQL zu verlieren | ProHoster","description":"Es hei\u00dft, man sollte im Leben alles einmal ausprobieren. Wenn Sie es gewohnt sind, mit relationalen Datenbanken zu arbeiten, dann sollten Sie NoSQL aus erster Hand kennenlernen, einfach aus allgemeinem Interesse. Momentan gibt es aufgrund des rasanten Wachstums dieser Technologie eine Menge kontroverser Meinungen und hitziger Debatten zu diesem Thema, was das Interesse besonders anheizt. Wenn man sich damit auseinandersetzt,","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0433\u043b\u0430\u0437\u0430 \u041a\u0430\u0441\u0441\u0430\u043d\u0434\u0440\u0435 \u0438 \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0435, \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u0435\u0440\u0443 \u0432 NoSQL | ProHoster","og:description":"\u0413\u043e\u0432\u043e\u0440\u044f\u0442, \u0432 \u0436\u0438\u0437\u043d\u0438 \u0432\u0441\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0440\u0430\u0437. \u0418 \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0421\u0423\u0411\u0414, \u0442\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0441 NoSQL \u0441\u0442\u043e\u0438\u0442 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441 \u0432 \u0441\u0438\u043b\u0443 \u0431\u0443\u0440\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u044b\u0445 \u043c\u043d\u0435\u043d\u0438\u0439 \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0445 \u0441\u043f\u043e\u0440\u043e\u0432 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443, \u0447\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u043e\u0433\u0440\u0435\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441. \u0415\u0441\u043b\u0438 \u0432\u043d\u0438\u043a\u043d\u0443\u0442\u044c","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:18:27+00:00","article:modified_time":"2019-10-31T19:18:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37585","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 18:29:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:06:01","updated":"2026-01-23 18:29:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=37585"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37585\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/28210"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=37585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=37585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=37585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}