Aus BigQuery abrufen

Die Inferenz-API unterstützt nicht nur Daten aus JSON-Dateien in Google Cloud Storage, sondern auch dem Lesen von BigQuery-Tabellen.

BigQuery-Tabelle vorbereiten

Die BigQuery-Tabelle, die von der Inference API verarbeitet werden soll, muss die folgenden Spalten haben:

  1. group_id im INTEGER-Typ
  2. Datenname in STRING-Typ
  3. data_value in STRING-Typ
  4. Startzeit im TIMESTAMP-Typ
  5. end_time (optional) im TIMESTAMP-Typ

Sie können die BigQuery-Tabelle aus einer vorhandenen Tabelle mit BigQuery-Abfragen generieren.

Informationen zum Exportieren des Abfrageergebnisses in eine neue Tabelle

Dataset erstellen

Ähnlich wie im Schnellstartbeispiel erstellen Sie mit der REST-Methode createdataset ein Cloud Inference API-Dataset.

  1. Erstellen Sie eine JSON-Anfragedatei mit dem folgenden Text und speichern Sie diese als Nur-Text-Datei create-gdelt-dataset.json:

    {
      "name":"gdelt_bq_2018_04_data",
      "data_names": [
        "PageURL",
        "PageDomain",
        "PageCountry",
        "PageLanguage",
        "PageTextTheme",
        "PageTextGeo",
        "ImageURL",
        "ImagePopularityRawScore",
        "ImagePopularity",
        "ImageSafeSearch",
        "ImageLabel",
        "ImageWebEntity",
        "ImageWebEntityBestGuessLabel",
        "ImageGeoLandmark",
        "ImageFaceToneHas"
      ],
      "data_sources": [
        { "uri":"infer-test:gdelt_demo.inference_gdelt_demo" },
      ]
    }
    

    Diese BigQuery-Tabelle enthält dieselben Daten wie der Schnellstart-Demoeingabe. Die Tabelle ist öffentlich zugänglich, also benötigen Sie keine Anmeldedaten, um darauf zuzugreifen.

  2. Überprüfen Sie, ob Sie über ein Autorisierungstoken verfügen:

    gcloud auth application-default print-access-token
      
  3. Verwenden Sie curl, um eine createdataset-Anfrage zu senden. Dabei übergeben Sie das Zugriffstoken und den Dateinamen der in Schritt 1 eingerichteten JSON-Anfrage:

    curl -s -H "Content-Type: application/json" \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      https://infer.googleapis.com/v1/projects/PROJECT_NUMBER/datasets \
      -d @create-gdelt-dataset.json
      

    Beachten Sie, dass Sie bei Übergabe eines Dateinamens an curl die Option -d (für "Daten") verwenden und vor den Dateinamen ein @-Zeichen setzen müssen. Diese Datei sollte sich in dem Verzeichnis befinden, in dem Sie den Befehl curl ausführen.

    Die Antwort sieht ungefähr so aus:

    {
      "name": "gdelt_bq_2018_04_data",
      "state": "STATE_PENDING"
    }
    

Anschließend können Sie das Dataset abfragen, sobald das Dataset geladen wurde.

Wenn Sie Ihre eigene BigQuery-Tabelle verwenden möchten, müssen Sie die vollständige Tabellen-ID im Format <project id>:<dataset name>.<table name> angeben. Das Konto für den Aufruf der Inference API sollte auch eine BigQuery-Datenbetrachter der Tabelle sein.

Tabellen-ID abrufen