2016-12-27 3 views
1

Ich verwende Big Query Python SDK, um Daten in Big Query einzufügen. Grundsätzlich überprüfe ich, ob die Tabelle bereits existiert und nachdem ich Daten mit der Funktion insert_data (Code unten) eingefügt habe.Big Query Streaming-Puffer einfügen null Zeilen python

Ich habe keine Fehler und ich kann in der Tabelle Vorschau Streaming-Puffer eine korrekte geschätzte Zeilennummern sehen. Das Problem ist wenige Stunden später, wenn die Vorschau verfügbar ist, sind alle Felder auf Null gesetzt ...

Eine Idee von was passiert?

bq_table = bq_dataset.table(bq_table_prefix + date) 
    bq_table.schema = [ 
     SchemaField('Date', 'string', mode='nullable'), 
     SchemaField('Hour', 'string', mode='nullable'), 
     SchemaField('Value', 'string', mode='nullable'), 
    ] 


    if bq_table.exists(): 
    bq_table.delete() 
    bq_table.create() 

    #tuples is [('string','string','string'),('string','string','string')] 
    errors = bq_table.insert_data(tuples) 
    if not errors: 
    print('Success') 
    else: 
    print('Errors:') 
    print(errors) 

Antwort

2

nicht sicher, ob dies der Fall für Sie, aber wenn Sie eine Tabelle löschen, müssen Sie mindestens 2 Minuten warten Daten wieder auf sie zu streamen. (link)

Eine Möglichkeit, zu testen Wenn dies für Sie der Fall ist, führen Sie Ihren Prozess in einer neu erstellten Tabelle aus, damit Sie ihn nicht löschen müssen, um zu sehen, ob er funktioniert. Wenn dies der Fall ist, müssen Sie möglicherweise Ihre Strategie zum Hochladen der Daten ändern (indem Sie entweder das Löschen vermeiden oder einige Minuten warten, bevor Sie das Streaming erneut starten).