Ich versuche, die Gesamtzahl einer Partition in BigQuery abzufragen und das Ergebnis in einer MySQL-Tabelle zu speichern. Ich mache das zu Überwachungszwecken.Zuordnung der Ausgabe einer BQ-Abfrage zur Variablen
#!/bin/sh
query1="bq query --format=csv 'SELECT COUNT(1) as Count FROM [dataset.tablename] WHERE _PARTITIONTIME = TIMESTAMP(\"$date\")'"
eval result=\$\($query1\)
echo "$result"
bq_insertquery="insert into <<table>>(<<column>>) values(${result})"
echo $bq_insertquery | mysql -u root -p <<dbname>>
Ich bekomme Fehler beim Einfügen in MySQL-Tabelle. Dies ist wahrscheinlich, weil das Variable $ Ergebnis beinhaltet sowohl die Header und den Wert, dh
Variable $ result gilt: Wert mit dem Header
Sieht aus wie MyQuery der Lage sein wird, Daten einfügen, wenn ich nur den Wert erhalten . Wie sollte ich einer Shell-Variablen nur Wert zuweisen und danach verwenden?
Bearbeiten: Jede SQL-Ausgabe enthält column_name und Werte. Die Variable, die zugewiesen wurde, um den Wert von BigQuery zu speichern, enthält auch beide, d. H. Spalte_Name und Wert. Ich suche nach etwas, das hilfreich wäre, nur Wert zu extrahieren.
Mögliches Duplikat [Wie eine Variable mit dem Ausgang von einem eingestellt Befehl in Bash?] (https://stackoverflow.com/questions/4651437/how-to-set-a-variable-to-the-output-from-a-command-in-bash) – l0b0
@ I0b0 Ich habe aktualisiert die Frage – Logical
Es ist immer noch ein Duplikat. Sehen Sie sich die verlinkte Frage an. Extrahieren nur der Wert ist ein vollständig separates Problem [hier] gelöst (https://stackoverflow.com/questions/9558867/how-to-fetch-field-from-mysql-query-result-in-bash) – l0b0