Die Datenmigration muss von MySQL nach ClickHouse importiert werden. Der zusammenfassende Plan sieht wie folgt aus und umfasst drei von ClickHouse selbst unterstützte Methoden und zwei Tools von Drittanbietern. Tabellen-Engine MySQL erstellen TABELLE ERSTELLEN [WENN NICHT VORHANDEN] [db.]Tabellenname [ON CLUSTER Cluster] ( Name1 [Typ1] [STANDARD|MATERIALISIERT|ALIAS Ausdruck1] [TTL Ausdruck1], Name2 [Typ2] [STANDARD|MATERIALISIERT|ALIAS Ausdruck2] [TTL Ausdruck2], ... INDEX Indexname1 Ausdruck1 TYP Typ1(...) GRANULARITÄT Wert1, INDEX Indexname2 Ausdruck2 TYP Typ2(...) GRANULARITÄT Wert2 ) ENGINE = MySQL('Host:Port', 'Datenbank', 'Tabelle', 'Benutzer', 'Passwort'[, Ersetzungsabfrage, 'Bei_Duplikatsklausel']); Offizielle Dokumentation: https://clickhouse.yandex/docs/en/operations/table_engines/mysql/ Beachten Sie, dass die eigentlichen Daten in einer entfernten MySQL-Datenbank gespeichert sind, die als Fremdtabelle verstanden werden kann. Sie können dies überprüfen, indem Sie Daten in MySQL hinzufügen und löschen. Einfügen in „Auswählen“ -- Erstellen Sie zuerst eine Tabelle CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ( Name1 [Typ1] [STANDARD|MATERIALISIERT|ALIAS Ausdruck1], Name2 [Typ2] [STANDARD|MATERIALISIERT|ALIAS Ausdruck2], ... ) ENGINE = Motor -- Daten importieren INSERT INTO [db.]table [(c1, c2, c3)] Spalte auswählen oder * from mysql('host:port', 'db', 'table_name', 'user', 'password') Sie können den Spaltentyp und die Anzahl der Spalten anpassen und Clickhouse-Funktionen zum Verarbeiten von Daten verwenden, z. B. select toDate(xx) from mysql("Host:Port", "DB", "Tabellenname", "Benutzername", "Passwort") Tabelle erstellen als „Auswählen aus“ TABELLE ERSTELLEN [WENN NICHT VORHANDEN] [db.]Tabellenname ENGINE = Protokoll ALS WÄHLEN * VON mysql('Host:Port', 'DB', 'article_clientuser_sum', 'Benutzer', 'Passwort') Netizen-Artikel: http://jackpgao.github.io/2018/02/04/ClickHouse-Use-MySQL-Data/ Benutzerdefinierte Spalten werden nicht unterstützt und der vom Blogger in der Referenz geschriebene Test Es kann als eine Kombination aus Das Unternehmen Altinity hat ein Python-Tool zum Migrieren von Daten von MySQL zu ClickHouse als Open Source freigegeben (unterstützt inkrementelle Updates von Binlog und vollständigen Import), aber die offizielle Readme-Datei ist nicht mit dem Code synchronisiert und es funktioniert nicht gemäß der Schnellstartanleitung. ## Tabelle clickhouse-mysql erstellen \ --src-host=127.0.0.1 \ --src-user=Leser \ --src-password=Qwerty1# \ --Tabellenvorlagen mit Datenbankerstellung \ --src-table=Fluggesellschaft.ontime > create_clickhouse_table_template.sql ## Ändern Sie das Skript vim create_clickhouse_table_template.sql ## Importieren und erstellen Sie die Tabelle clickhouse-client -mn < create_clickhouse_table_template.sql ## Daten in clickhouse-mysql importieren \ --src-host=127.0.0.1 \ --src-user=Leser \ --src-password=Qwerty1# \ --Tabelle-Migration \ --dst-host=127.0.0.1 \ --dst-table=logunified \ --csvpool Offizielle Dokumentation: https://github.com/Altinity/clickhouse-mysql-data-reader#mysql-migration-case-1—migrate-existing-data Beachten Sie, dass die oben genannten drei Methoden alle von MySQL in ClickHouse importiert werden. Wenn die Datenmenge groß ist, wird MySQL stark unter Druck gesetzt. Im Folgenden sind zwei Offline-Methoden aufgeführt (Streamsets unterstützen sowohl Echtzeit als auch Offline) csv ## Ignorieren Sie das Erstellen der Tabelle clickhouse-client \ -h Gastgeber \ --query="INSERT INTO [db].table FORMAT CSV" < test.csv Bei einer minderen Qualität der Quelldaten kommt es allerdings häufig zu Problemen, wie zum Beispiel Sonderzeichen (Trennzeichen, Escape-Zeichen) oder Zeilenumbrüchen. Ich wurde schwer betrogen. Benutzerdefiniertes Trennzeichen, --format_csv_delimiter="|" Wenn ein Fehler auftritt, überspringen Sie ihn, anstatt abzubrechen. --input_format_allow_errors_num=10 lässt bis zu 10 Fehlerzeilen zu, --input_format_allow_errors_ratio=0.1 lässt 10 % Fehler zu. csv überspringt Nullwerte und meldet Code: 27. DB::Exception: Eingabe kann nicht analysiert werden: erwartet, vorher: xxxx: (in Zeile 69) FEHLER: Müll nach Nullable(Datum): "8,002<ZEILENFEED>0205" sed ' :a;s/,,/,\\N,/g;ta' |clickhouse-client -h host --query "INSERT INTO [db].table FORMAT CSV" Ersetzen Sie ,, durch ,\N, python clean_csv.py --src=src.csv --dest=dest.csv --chunksize=50000 --cols --encoding=utf-8 --delimiter=, clean_csv.py Siehe meinen anderen Artikel 032-csv-Datei Fehlertoleranzverarbeitung Streamsets Streamsets unterstützt den vollständigen Import aus MySQL oder das Lesen von CSV und unterstützt auch inkrementelles Einfügen durch Abonnieren von Binlog. Bitte lesen Sie meinen anderen Artikel 025 – Installation des Big Data ETL-Tools StreamSets und Abonnement von MySQL Binlog. Dieser Artikel zeigt nur, wie Clickhouse aus MySQL importiert wird Dieser Artikel setzt voraus, dass Sie den Streamsets-Dienst bereits eingerichtet haben Aktivieren und Neustarten des Dienstes Laden Sie das JDBC-JAR und die Abhängigkeitspakete von MySQL und Clickhouse hoch. Bequemer Weg: Erstellen Sie pom.xml und verwenden Sie Maven, um es einheitlich herunterzuladen <Projekt xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.anjia</groupId> <artifactId>Demo</artifactId> <packaging>Glas</packaging> <version>1.0-SNAPSHOT</version> <name>Demo</name> <url>http://maven.apache.org</url> <Abhängigkeiten> <Abhängigkeit> <groupId>ru.yandex.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.1.54</version> </Abhängigkeit> <Abhängigkeit> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </Abhängigkeit> </Abhängigkeiten> </Projekt> Wenn Maven lokal installiert ist, führen Sie den folgenden Befehl aus mvn-Abhängigkeit: Abhängigkeiten kopieren -DoutputDirectory=lib -DincludeScope=kompilieren Alle erforderlichen JAR-Dateien werden heruntergeladen und in das Lib-Verzeichnis kopiert. Kopieren Sie es dann in Starten Sie den Streamsets-Dienst neu
Zusammenfassen Oben sind die 5 Methoden zum Migrieren von MySQL zu ClickHouse, die vom Herausgeber vorgestellt wurden. Ich hoffe, dass sie für alle hilfreich sein werden. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: So stellen Sie ein SpringBoot-Projekt mit Docker bereit
>>: ElementUI implementiert die Funktionsschaltfläche zum Zurücksetzen des Formulars el-form
Nachdem wir im vorherigen Artikel mit OpenSSL ein...
<br />Verwandte Artikel: innerHTML HTML DOM ...
Heute listet dieser Beitrag einige großartige Beis...
Egal, ob Sie versuchen, Daten von einem sterbende...
Inhaltsverzeichnis Voraussetzungen RN übergibt We...
prune Um diesen Befehl verwenden zu können, müsse...
Harbor ist ein Registry-Server auf Unternehmenseb...
MySQL-Mehrtabellenabfrage (kartesisches Produktpr...
Ich habe kürzlich bei einem praktischen Trainings...
Inhaltsverzeichnis 1. Einfaches Seitenbeispiel 2....
Befehl „touch“ Es hat zwei Funktionen: Eine beste...
Frage: Beim Installieren Nginx in Docker ist der ...
Heute werde ich den Server nginx verwenden und mu...
Deaktivieren Sie SeLinux setenforce 0 Dauerhaft g...
Inhaltsverzeichnis Vorwort So lösen Sie Sudoku Fü...