En un post pasado dimos un pequeño vistazo a GCP y BigQuery. Continuaremos con más ejemplos de Java y BigQuery.
Ejemplo 1. Crear una tabla con BigQuery.
CrearTableBigQuery.java
package com.codemonkey.main; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.Field; import com.google.cloud.bigquery.Schema; import com.google.cloud.bigquery.StandardSQLTypeName; import com.google.cloud.bigquery.StandardTableDefinition; import com.google.cloud.bigquery.TableDefinition; import com.google.cloud.bigquery.TableId; import com.google.cloud.bigquery.TableInfo; public class CrearTableBigQuery { public static final String MY_DATASET_NAME = "midataset"; public static final String MY_TABLE_NAME= "usuarios"; public static void main(String[] args) { String datasetName = MY_DATASET_NAME; String tableName = MY_TABLE_NAME; Schema schema = Schema.of( Field.of("nombre", StandardSQLTypeName.STRING), Field.of("activo", StandardSQLTypeName.BOOL)); createTable(datasetName, tableName, schema); } public static void createTable(String datasetName, String tableName, Schema schema) { try { BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); TableId tableId = TableId.of(datasetName, tableName); TableDefinition tableDefinition = StandardTableDefinition.of(schema); TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); bigquery.create(tableInfo); System.out.println("Tabla creada exitosamente!!"); } catch (BigQueryException e) { System.err.println("Ha ocurrido un error al crear la tabla: \n" + e.getMessage()); } } }
Si todo funciona correctamente, entonces la tabla usuarios habrá sido creada correctamente.
En Python el código tan solo consta de unas breves líneas de código:
creartablabq.py
from google.cloud import bigquery client = bigquery.Client() table_id = "midataset.usuarios" schema = [ bigquery.SchemaField("nombre", "STRING", mode="REQUIRED"), bigquery.SchemaField("edad", "INTEGER", mode="REQUIRED"), ] table = bigquery.Table(table_id, schema=schema) table = client.create_table(table) print( "Se ha creado la tabla {}.{}.{}".format(table.project, table.dataset_id, table.table_id))
Ejemplo 2. Eliminar una tabla con BigQuery.
EliminarTabla.java
package com.codemonkey.main; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.TableId; public class EliminarTabla { public static void main(String[] args) { String datasetName = "midataset"; String tableName = "usuarios"; borrarTabla(datasetName, tableName); } public static void borrarTabla(String datasetName, String tableName) { try { BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); boolean success = bigquery.delete(TableId.of(datasetName, tableName)); if (success) { System.out.println("Tabla borrada exitosamente"); } else { System.out.println("Tabla no encontrada"); } } catch (BigQueryException e) { System.out.println("Ha ocurrido un error al borrar la tabla. \n" + e.getMessage()); } } }
Si funciona correctamente, la tabla será eliminada.
Ahora en Python:
eliminartablabq.py
from google.cloud import bigquery client = bigquery.Client() table_id = 'myproject.mydataset.usuarios' client.delete_table(table_id, not_found_ok=True) print("Tabla eliminada: '{}'.".format(table_id))
¿Y qué con otros clientes cómo PHP, etc.?
Hay clientes para otros lenguajes además de Java y Python, también puede usar C#, PHP, y Go.
borrartablebq.php
use Google\Cloud\BigQuery\BigQueryClient; /** * Borrar determinada tabla * * @param string $projectId El ID de tu proyecto. * @param string $datasetId El ID de tu dataset. * @param string $tableId El ID de tu tabla. */ function eliminarTabla(string $projectId, string $datasetId, string $tableId): void { $bigQuery = new BigQueryClient([ 'projectId' => $projectId, ]); $dataset = $bigQuery->dataset($datasetId); $table = $dataset->table($tableId); $table->delete(); printf('Tabla eliminada %s.%s' . PHP_EOL, $datasetId, $tableId); }
Cómo se puede observar, es relativamente fácil emplear el client library de GCP para nuestros proyectos en la nube.
El código fue tomado de este enlace: https://cloud.google.com/bigquery/docs/samples/bigquery-delete-table
Enlaces:
https://codemonkeyjunior.blogspot.com/2024/04/gcp-google-cloud-bigquery.htmlhttps://codemonkeyjunior.blogspot.com/2024/04/google-cloud-platform-gcp-en-un-vistazo.html
https://codemonkeyjunior.blogspot.com/2024/04/gcp-google-cloud-storage.html
No hay comentarios:
Publicar un comentario