Ich versuche, Daten zu laden, die das Ergebnis einer Python 2.7-Bibliothek - pg8000 Abfrage gegen eine AWS Redshift-Tabelle ist.Redshift Werte in Tabelle einfügen
Zuerst Frage ich eine Redshift-Tabelle für Ergebnisse und es stellt sie in einem Tupel mit Werten in einer Liste.
Beispiel:
value_tuple = ([datetime.date(2016, 10, 2), 1, 1, 123123], [datetime.date(2016, 10, 2), 1, 2, 3131312])
Ich mag diese Werte in einer anderen Tabelle einfügen, aber in ein paar Probleme leite die Insert-Anweisung zu erstellen. Ich bin offen dafür, alle Werte einzeln einzugeben, aber ich würde lieber alle auf einmal machen.
Die Tabelle I mit wie folgt aussehen gerade arbeite:
| date_column | value_1 | value_2 | value_count |
| 2016-10-01 | 1 | 2 | 300 |
Zuerst habe ich versucht, eine Update-Abfrage zu erstellen, die
update_query = """insert into my_schema.my_table_to_update
values %s
""" % str(value_tuple[0])
Auf diese Weise der update_query nur eine einzige Liste innerhalb des Tupel verwendet wird:
'insert into my_schema.my_table_to_update\n values [datetime.date(2016, 10, 2), 1, 1, 123123]\n '
Wenn ich die Update-Abfrage für die Tabelle I diesen Fehler laufen:
pg8000.core.ProgrammingError: (u'ERROR', u'42601', u'syntax error at or near "["', u'70', u'/home/rdsdb/padb/src/pg/src/backend/parser/parser_scan.l', u'699', u'yyerror', u'', u'')
Ich denke, das bedeutet, ich kann nicht das Listenformat der Ergebnisse in die Tabelle einfügen.
Was ist eine zweckmäßige und vorzugsweise effiziente Methode zum Einfügen dieser Daten in Redshift?