Heim > Backend-Entwicklung > Golang > BQ fügt den Datensatztyp erfolgreich ein, aber es werden keine Daten eingefügt

BQ fügt den Datensatztyp erfolgreich ein, aber es werden keine Daten eingefügt

PHPz
Freigeben: 2024-02-09 15:40:18
nach vorne
1138 Leute haben es durchsucht

BQ 插入记录类型成功,未插入数据

Der PHP-Editor Banana stellt Ihnen ein häufiges Problem beim Datenbankbetrieb vor: Der Datensatztyp wird erfolgreich in die BQ-Datenbank eingefügt, die tatsächlichen Daten werden jedoch nicht eingefügt. Diese Situation kann zu Dateninkonsistenzen führen. Daher müssen wir die Ursache herausfinden und das Problem lösen. Im Folgenden werden wir die möglichen Ursachen und Lösungen detailliert beschreiben, um den Lesern zu helfen, besser mit diesem Problem umzugehen.

Frageninhalt

Ich versuche, Daten gemäß dem folgenden Beispiel in BigQuery einzufügen Text mit vorgefertigter Tabelle im Vergleich zum gegebenen Beispiel. Mein Code lautet wie folgt

type tagInfo struct {
    proj_name string `bigquery:"proj_name"`
    Tags      Tags   `bigquery:"tags"`
}
type Tags struct {
    key    string `bigquery:"key"`
    values string `bigquery:"values"`
}
func insertData() error {
    prjName := "prjName"
    datasetID := "DSName"
    tableID := "TName"

    ctx := context.Background()
    client, err := bigquery.NewClient(ctx, prjName)
    if err != nil {
        return fmt.Errorf("Bigquery.NewClient: %w", err)
    }
    defer client.Close()

    item := &tagInfo{
        proj_name: "Devil",
        Tags: Tags{
            key:    "engcontact",
            values: "Meryl Streep",
        },
    }
    fmt.Printf("Item is: %s", item)
    items := []*tagInfo{item}

    table := client.Dataset(datasetID).Table(tableID)
    inserter := table.Inserter()
    err = inserter.Put(ctx, items)

    if err != nil {
        if multiErr, ok := err.(bigquery.PutMultiError); ok {
            for _, putErr := range multiErr {
                fmt.Printf("failed to insert row %d with err: %v \n", putErr.RowIndex, putErr.Error())
                fmt.Println(putErr.Errors)
            }
        }
        return err
    }
    return nil
}
Nach dem Login kopieren

Der Code wird erfolgreich ausgeführt, aber ich sehe keine eingefügten Datensätze. Die Tabellenstruktur ist wie folgt

Feldname Typ Mod Key Sortierregel Standardwert Richtlinienbezeichnung

proj_name string nullable

Etikett. Der Datensatz kann leer sein

Schlüssel. String kann leer sein Werte. String kann leer sein

Ich bin mir nicht sicher, was los ist. Wenn jemand eine Anleitung geben kann, vielen Dank.

tia Srikanth

Erwarten Sie, dass der Datensatz erfolgreich in die Tabelle eingefügt wird.

Problemumgehung

Felder sollten exportiert werden. Dieses Problem wurde zu oft gemeldet:

type taginfo struct {
    projname string `bigquery:"proj_name"`
    tags     tags   `bigquery:"tags"`
}
type tags struct {
    key    string `bigquery:"key"`
    values string `bigquery:"values"`
}
Nach dem Login kopieren

Siehe Dokumentation (*inserter).put< /a>:

...

Wenn src „valuesaver“ ist, wird seine Speichermethode aufgerufen, um eine Zeile zum Hochladen zu generieren.

Wenn src eine Struktur oder ein Zeiger auf eine Struktur ist, das Schema wird daraus abgeleitet und zum Erstellen des Structsaver verwendet. Die Einfügungs-ID von structsaver ist leer.

...

Dies ist ein Kommentar zu

// inferFields extracts all exported field types from struct type.
func inferFields(rt reflect.Type) (Schema, error) {

Das obige ist der detaillierte Inhalt vonBQ fügt den Datensatztyp erfolgreich ein, aber es werden keine Daten eingefügt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage