[GO] SELECT-Daten mithilfe der Client-Bibliothek mit BigQuery

In Google BigQuery gibt es zwei Möglichkeiten, Daten aus einer Tabelle abzurufen:

In diesem Artikel werde ich "So verwenden Sie die Client-Bibliothek" vorstellen.

Umgebung

Umgebung

Siehe Installieren der BigQuery-Clientbibliothek (https://cloud.google.com/bigquery/docs/reference/libraries?hl=ja). Ab Januar 2018 befindet sich die Java-Client-Bibliothek nur noch in der Beta-Version, daher werden wir diese auch in diesem Artikel verwenden. Die Quelle der Clientbibliothek wird unten veröffentlicht. https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery

Tabellenstruktur

In diesem Artikel wählen wir eine Tabelle mit der folgenden Konfiguration aus.

COLUMN TYPE MODE
name STRING NULLABLE
gender STRING NULLABLE
count INTEGER NULLABLE

Verwenden Sie die listTableData-Methode

Verwenden Sie BigQuery # listTableData.

BigQuerySelectSample.java


package bigquery.sample;

import com.google.api.gax.paging.Page;
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.FieldValueList;

public class BigQuerySelectSample {

	private static final String DATASET_NAME = "dev1";
	private static final String TABLE_NAME = "names_2014";
	private static final int NAME_COLUMN = 0;
	private static final int GENDER_COLUMN = 1;

	public static void main(String[] args) {

		BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

		// use listTableData method
		Page<FieldValueList> tableData = bigquery.listTableData(DATASET_NAME, TABLE_NAME);
		for (FieldValueList row : tableData.iterateAll()) {
			System.out.println(row.get(NAME_COLUMN).getValue() + " " + row.get(GENDER_COLUMN).getValue());
		}
	}
}

Die listTableData-Methode gibt keine Schemainformationen (Spaltennamen usw.) zurück, sondern nur Daten. Wenn Sie also die Daten einer bestimmten Spalte benötigen, müssen Sie über den Zeilenindex wie row.get (0), row.get (1) darauf zugreifen.

Verwenden Sie die Abfragemethode

Zusätzlich zu BigQuery # listTableData können Sie auch die BigQuery # -Abfrage verwenden.

BigQuerySelectSample.java


package bigquery.sample;

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.FieldValueList;
import com.google.cloud.bigquery.QueryJobConfiguration;
import com.google.cloud.bigquery.QueryResponse;

public class BigQuerySelectSample {

	private static final String DATASET_NAME = "dev1";
	private static final String TABLE_NAME = "names_2014";

	public static void main(String[] args) throws InterruptedException {

		BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

		// use query method
		String query = "SELECT name, gender FROM `" + DATASET_NAME + "." + TABLE_NAME + "` WHERE name = 'Ryder'";
		QueryJobConfiguration queryConfig = QueryJobConfiguration.of(query);
		QueryResponse response = bigquery.query(queryConfig);
		for (FieldValueList row : response.getResult().iterateAll()) {
			System.out.println(row.get("name").getValue() + " " + row.get("gender").getValue());
		}
	}
}

Mit BigQuery können Sie SQL in einem ähnlichen Format wie RDB schreiben. Die detaillierte Abfragereferenz lautet BigQuery SELECT-Klausel. Die Abfragemethode gibt auch Schemainformationen (Spaltenname usw.) zurück, sodass Sie über einen Spaltennamen wie row.get ("columnName") darauf zugreifen können.

Performance

Obwohl es sich um eine einfache Messung handelt, dauerte die Abfrage von BigQuery # listTableData und BigQuery # für 33206-Tabellen etwa 4 bis 5 Sekunden. Es scheint, dass es keinen großen Unterschied zwischen den beiden gibt.

das ist alles.

Referenz

Recommended Posts

SELECT-Daten mithilfe der Client-Bibliothek mit BigQuery
Wählen Sie Features mit Textdaten aus
Implementieren Sie OAuth ohne Client-Bibliothek (Java)
Datenversorgungstricks mit deque beim maschinellen Lernen
Sortieren Sie BigQuery-Tabellen nach Daten im Datenfluss
Definieren Sie die Antwort der boto3-Client-API in der Datenklasse
Lesen Sie Dateien auf GCS mithilfe der Cloud Storage Client Library
Erstellen Sie mit Selenium einen Datenerfassungsbot in Python
Hinweise zu Transaktionen in der Java-Clientbibliothek im Datenspeicher
Registrieren Sie gemeinsam Daten im Firestore mithilfe der CSV-Datei in Python
Holen Sie sich LEAD-Daten mit der REST-API von Marketo in Python
Verwenden Sie die Such-API der National Parliament Library in Python
Datenanalyse mit xarray
Abtastung in unausgeglichenen Daten
Datenbereinigung mit Python
Veröffentlichung einer Bibliothek, die Zeichendaten in Python-Bildern verbirgt
Aufblasen von Textdaten durch erneute Übersetzung mithilfe der Google-Übersetzung in Python
Sinuswellenvorhersage mit RNN in der Deep-Learning-Bibliothek Keras
Geben Sie Excel-Daten mit Python3 + xlrd + mecab separat aus
Versuchen Sie, ein neuronales Netzwerk in Python aufzubauen, ohne eine Bibliothek zu verwenden
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
Probleme bei der Verwendung von Elasticsearch als Datenquelle in Redash
Spielen Sie mit der YouTube Data API v3 mit dem Google API Python Client