Ich weiß, dass die Join-Funktion auf BigQuery verbessert wird, um hier nicht zu schimpfen, aber es wird schwierig sein, Terabyte-Datensätze als "angekündigt" zu analysieren, wenn Joins nicht richtig verwendet werden können .Joins auf Google Bigquery
OK, zurück zum Problem, ich habe zwei Tabellen, eine ist 600 Megs und die andere ist 50Megs, ich habe versucht, einen Beitritt zu machen, und ich habe einen Fehler über kleinere Tabelle muss verlassen werden. Ich habe etwas recherchiert und herausgefunden, dass Bigquery
beide Tabellen als groß ansieht, wenn sie größer als 7MB sind?
Also basierend auf einigen Ratschlägen, die ich online gefunden habe ich den Datensatz in Frage der kleineren Tabelle ausgewählt und in einer neuen Tabelle gespeichert, der neue Datensatz ist 12MB und 600K Zeilen über zwei Spalten. Dann habe ich versucht, meine Frage wieder, aber ich bin immer noch die gleichen Fehler:
Query Failed : Error: Large table cdrs_test.geoIP_Left must appear as the leftmost table in a join query
geoIP_Left 12 Megs, die andere Tabelle 600Megs ist ..
Kann man das irgendwie fixiert werden, oder bin ich kaputt? Wenn ja, weiß jemand über andere Dienste, die ich verwenden kann, um große Datenmengen zu analysieren, die Joins unterstützen.
EDIT: Dies ist die eigentliche Abfrage;
SELECT COUNT(results.cc_card) AS count,
sum(results.sessiontime) AS time,
geoIP_Left.place AS place
FROM cdrs_test.cdrs_2010_5 AS results
JOIN cdrs_test.geoIP_Left AS geoIP_table
ON results.cc_card = geoIP_table.vcard
WHERE results.sessiontime > 0 AND results.countryName Contains 'India'
GROUP BY place;
Konnten Sie Ihre tatsächliche Frage zeigen? –
Sicher ... hier gehen Sie – user1838066
SELECT COUNT (results.cc_card) AS count, Summe (results.sessiontime) AS Zeit, geoIP_Left.place AS Ort FROM cdrs_test.cdrs_2010_5 AS Ergebnisse JOIN cdrs_test.geoIP_Left AS geoIP_table ON results.cc_card = geoIP_table .vcard WHERE results.sessiontime> 0 UND results.countryName Enthält 'India' GROUP BY place; – user1838066