Ich habe eine Tabelle, die uuid und einige andere Werte für Benutzer enthält.Verwenden von Big Query UDF während der Auswahl
Auch ich habe folgende UDF-Funktion in BQ, die von bestimmten UUID berechnet user_group, basierend auf MD5 und CRC32-Wert:
function GetGroup(uuid) {...
}
function getUserGroup(r, emit) {
emit ({group: GetGroup(String(r.uuid)), uuid: r.uuid
});
}
bigquery.defineFunction(
'get_group',
['uuid'],
[{'name': 'group', 'type': 'string'}, {'name': 'uuid', 'type': 'string'}],
getUserGroup);
Also, den Nutzwert ich wie etwas tun müssen, extrahieren:
DieseSELECT
group,
uuid
FROM
get_group(
SELECT
uuid
FROM
[MY_TABLE])
ist nicht sehr nützlich, weil ich die gleiche user_group für uUID in paar verschiedenen Tabellen extrahieren möchte und ich möchte nicht die Funktion „get_group“ jedes Mal, ich will definieren, es zu benutzen. Wenn ich alle Felder aus der Tabelle haben möchte, muss ich außerdem das Ergebnis mit der Originaltabelle verknüpfen oder das Tabellenschema in UDF hardcodieren.
Gibt es eine bequeme Möglichkeit, UDF ähnlich wie jede andere in Big Query integrierte Funktion zu verwenden? Zum Beispiel:
SELECT
uuid,
get_group(uuid)
FROM
[ANY_TABLE_WITH_UUID_FIELD]