Wir verwenden BigQuery religiös und haben zwei Tabellen, die im Wesentlichen durch verschiedene Prozesse parallel aktualisiert wurden. Das Problem, das ich habe, wir haben keine eindeutige Kennung für Tabellen und das Ziel ist es, die beiden Tabellen mit Null-Duplizierung zu kombinieren, wenn möglich. Die eindeutige Kennung ist zwei Spalten kombiniert.BigQuery DeDuplication auf zwei Spalten als eindeutiger Schlüssel
Ich habe verschiedene MySQL-basierte Abfragen ausprobiert, aber keine scheint in BigQuery zu funktionieren. Also poste ich hier etwas Hilfe. :)
Schritt 1. Kopieren Sie die "saubere" Tabelle in eine neue zusammengeführte Tabelle.
Schritt 2. Fragen Sie die "schmutzige" (alte) Tabelle ab und fügen Sie fehlende Einträge ein.
Abfrage Versuch 1:
SELECT
COUNT(c.*)
FROM
[flash-student-96619:device_data.device_datav3_20160530] AS old
WHERE NOT EXISTS (
SELECT
1
FROM
[flash-student-96619:device_data_v7_merged.20160530] AS new
WHERE
new.dsn = old.dsn
AND new.timestamp = old.timestamp
)
Fehler: Fehler bei: 6,1 bis 10,65. Es kann immer nur eine Abfrage ausgeführt werden.
Abfrage Versuch 2:
SELECT
*
FROM
[flash-student-96619:device_data.device_datav3_20160530]
WHERE
(dsn, timestamp) NOT IN (
SELECT
dsn,
timestamp
FROM
[flash-student-96619:device_data_v7_merged.20160530]
)
Fehler: Fand "",““, "" in Zeile 6, Spalte 7 erwartet hatte: ")" ...
Ehrlich, wenn ich dies in einer Abfrage tun könnte, wäre ich glücklich. Ich muss von zwei Tabellen abrufen und eine neue mit eindeutigen Daten erstellen.
Irgendwelche Hilfe?
Was ist mit zwei Tabellen though. Ich möchte mich nicht gegen den einen Tisch entmutigen, sondern an einen anderen Tisch. Ich schätze, ich kann in eine Tabelle schreiben und dann in eine Tabelle schreiben ... – Dovy
das war die folgende Richtung: o) - wie auch immer die zweite Tabelle hinzugefügt - Idee ist es, kombinierte Daten (aus beiden Tabellen) zu deduplizieren und in das Finale zu schreiben sauberer Tisch. hoffe das ist das was du erreichen willst –
Du bringst meinen Freund in Brand. – Dovy