2016-07-11 12 views
1

Ich benutze UDF seit ein paar Monaten jetzt mit sehr viel Erfolg. Vor kurzem habe ich separate Projekte für die Entwicklung eingerichtet und streame ein Muster von 1/10 unserer Web-Tracking-Daten in diese Projekte.BigQuery UDF funktioniert in einem Projekt, aber nicht in einem anderen

Was ich finde, ist, dass die UDFs, die ich in der Produktion verwende, die auf dem gesamten Datensatz arbeiten, funktionieren, während die exakt gleiche Abfrage in unserem Entwicklungsprojekt trotz der Abfrage von 1/10 der Daten konsistent fehlschlägt. Die Fehlermeldung lautet:

Ich habe unsere Quotas durchgesehen und nichts gefunden, das das Entwicklungsprojekt einschränken würde.

Hat jemand irgendwelche Ideen?

Wenn jemand hineinschauen kann, hier sind die Projekt-IDs:

Erfolgreiche Abfrage in der Produktion: bquijob_4af38ac9_155dc1160d9

Abfrage in Entwicklung fehlgeschlagen: bquijob_536a2d2e_155dc153ed6

+0

ein Blick darauf! –

+0

Hallo, könnten Sie die Projekt-IDs für beide Projekte teilen? Ich gehe davon aus, dass die Jobs für jedes Projekt in verschiedenen Produktionszellen ausgeführt werden, und es gibt ein zellspezifisches Problem. – thomaspark

+0

@thomaspark Ich werde dir diese direkt per E-Mail schicken – jkmd

Antwort

0

Jan-Karl, Entschuldigungen für die späte Antwort ; Ich war außer Landes, um bei einigen Veranstaltungen in Japan zu sprechen und habe mich dann mit Oncall-Problemen mit der Produktion beschäftigt.

Ich habe endlich die Chance, das für Sie zu untersuchen. Die beiden Job IDs, die Sie mir gesendet haben, laufen sehr verschiedene Abfragen. Die Abfragen sehen gleich aus, aber sie laufen tatsächlich über Ansichten, die unterschiedliche Definitionen haben. Die Abfrage, die erfolgreich war, ist eine gerade select * from table, während derjenige, der das JS OOM hat, eine UDF verwendet.

Wir sind dabei, eine Lösung für das JS OOM-Problem einzuführen, indem wir der JavaScript-Engine mehr RAM zur Verfügung stellen.

...

... und jetzt einige Informationen, die zu diesem Fall nicht wirklich relevant sind, aber das könnte zukünftigen Wert sein ...

...

Theoretisch könnte eine Abfrage in einem Projekt erfolgreich sein und in einem anderen fehlschlagen, auch wenn sie über genau denselben Datensatz laufen. Dies wäre ungewöhnlich, aber möglich.

Hintergrund: BigQuery betreibt und verwaltet Kopien von Kundendaten in mehreren Rechenzentren zur Redundanz. Verschiedene Projekte sind darauf ausgerichtet, in verschiedenen Rechenzentren zu laufen, um die Lastverteilung und -nutzung zu unterstützen.

Eine Abfrage wird im Standarddatencenter für das Projekt ausgeführt, wenn die Daten frisch genug sind. Wir haben einen Prozess, der die Daten zwischen Rechenzentren repliziert, und wir vermeiden, in einem Datencenter zu laufen, das eine veraltete Kopie der Daten enthält. Wir führen jedoch Wartungsjobs aus, um sicherzustellen, dass die Dateien, aus denen Ihre Daten bestehen, die optimale Größe haben. Diese Jobs werden separat pro Datenzentrum geplant. Es ist daher möglich, dass die zugrunde liegenden Datendateien für dieselbe Tabelle in Zelle A und Zelle B eine andere physische Struktur aufweisen. Dies könnte Auswirkungen auf Aspekte der Leistung einer Abfrage haben In Extremfällen kann eine Abfrage in Zelle A, aber nicht in B erfolgreich sein.