Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Ejemplo: Entorno estándar de App Engine para Java
Este ejemplo es una aplicación de App Engine, escrita en Java, que escribe saludos de “Hello World” en una tabla de Bigtable y los lee. La aplicación se ejecuta en Google Cloud en el entorno estándar de App Engine. La aplicación usa el entorno de ejecución de Java 8. El código de esta aplicación se encuentra en el repositorio de GitHub GoogleCloudPlatform/java-docs-samples, en el directorio appengine-java8/bigtable.
Descripción general de la muestra de código
La muestra de código incluye las siguientes clases:
BigtableHelper, que proporciona una conexión a Bigtable.
BigtableHelper proporciona un método para crear una conexión a Bigtable. También almacena en caché la conexión y proporciona un método que permite recuperarla cuando existe. Crear una conexión es una operación relativamente costosa, por lo que, como práctica recomendada, siempre debes crear una única conexión y reutilizarla.
publicstaticvoidconnect()throwsIOException{if(PROJECT_ID==null||INSTANCE_ID==null){if(sc!=null){sc.log("environment variables BIGTABLE_PROJECT, and BIGTABLE_INSTANCE need to be defined.");}return;}connection=BigtableConfiguration.connect(PROJECT_ID,INSTANCE_ID);}/** * Get the shared connection to Cloud Bigtable. * * @return the connection */publicstaticConnectiongetConnection(){if(connection==null){try{connect();}catch(IOExceptione){if(sc!=null){sc.log("connect ",e);}}}if(connection==null){if(sc!=null){sc.log("BigtableHelper-No Connection");}}returnconnection;}
BigtableHelloWorld
BigtableHelloWorld se usa para escribir una serie de saludos a Bigtable, leer los saludos y, luego, mostrarlos. La clase obtiene una conexión de Bigtable de BigtableHelper, usa la conexión para obtener un objeto Table, que te permite leer y escribir valores y, luego, usa el objeto Table para escribir en la tabla.
/** * A minimal application that connects to Cloud Bigtable using the native HBase API and performs * some basic operations. */publicclassBigtableHelloWorld{// Refer to table metadata names by byte array in the HBase APIprivatestaticfinalbyte[]TABLE_NAME=Bytes.toBytes("Hello-Bigtable");privatestaticfinalbyte[]COLUMN_FAMILY_NAME=Bytes.toBytes("cf1");privatestaticfinalbyte[]COLUMN_NAME=Bytes.toBytes("greeting");// Write some friendly greetings to Cloud BigtableprivatestaticfinalString[]GREETINGS={"Hello World!","Hello Cloud Bigtable!","Hello HBase!"};/** * Create a table -- first time only. * * @param connection to Bigtable * @return the status */publicstaticStringcreate(Connectionconnection){try{// The admin API lets us create, manage and delete tablesAdminadmin=connection.getAdmin();// Create a table with a single column familyHTableDescriptordescriptor=newHTableDescriptor(TableName.valueOf(TABLE_NAME));descriptor.addFamily(newHColumnDescriptor(COLUMN_FAMILY_NAME));admin.createTable(descriptor);}catch(IOExceptione){return"Table exists.";}return"Create table "+Bytes.toString(TABLE_NAME);}/** Connects to Cloud Bigtable, runs some basic operations and prints the results. */publicstaticStringdoHelloWorld(){StringBuilderresult=newStringBuilder();// Create the Bigtable connection, use try-with-resources to make sure it gets closedConnectionconnection=BigtableHelper.getConnection();result.append(create(connection));result.append("<br><br>");try(Tabletable=connection.getTable(TableName.valueOf(TABLE_NAME))){// Retrieve the table we just created so we can do some reads and writes// Write some rows to the tableresult.append("Write some greetings to the table<br>");for(inti=0;i < GREETINGS.length;i++){// Each row has a unique row key.//// Note: This example uses sequential numeric IDs for simplicity, but// this can result in poor performance in a production application.// Since rows are stored in sorted order by key, sequential keys can// result in poor distribution of operations across nodes.//// For more information about how to design a Bigtable schema for the// best performance, see the documentation://// https://cloud.google.com/bigtable/docs/schema-designStringrowKey="greeting"+i;// Put a single row into the table. We could also pass a list of Puts to write a batch.Putput=newPut(Bytes.toBytes(rowKey));put.addColumn(COLUMN_FAMILY_NAME,COLUMN_NAME,Bytes.toBytes(GREETINGS[i]));table.put(put);}// Get the first greeting by row keyStringrowKey="greeting0";ResultgetResult=table.get(newGet(Bytes.toBytes(rowKey)));Stringgreeting=Bytes.toString(getResult.getValue(COLUMN_FAMILY_NAME,COLUMN_NAME));result.append("Get a single greeting by row key<br>");result.append(" ");result.append(rowKey);result.append("= ");result.append(greeting);result.append("<br>");// Now scan across all rows.Scanscan=newScan();result.append("Scan for all greetings:");ResultScannerscanner=table.getScanner(scan);for(Resultrow:scanner){byte[]valueBytes=row.getValue(COLUMN_FAMILY_NAME,COLUMN_NAME);result.append(" ");result.append(Bytes.toString(valueBytes));result.append("<br>");}}catch(IOExceptione){result.append("Exception while running HelloWorld: "+e.getMessage()+"<br>");result.append(e.toString());returnresult.toString();}returnresult.toString();}}
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-03-26 (UTC)"],[[["This Java application demonstrates how to interact with a Bigtable database from the Google App Engine standard environment using the Java 8 runtime."],["The `BigtableHelper` class manages the connection to Bigtable, caching it for reuse to improve performance."],["The `BigtableHelloWorld` class handles writing greetings to a Bigtable table, reading them back, and displaying them."],["The code utilizes the HBase API to create a table, write rows with column family, and scan/read the values from the table."],["The example is intended to showcase the basic operations with Bigtable, and recommends referring to the documentation on schema-design for better performance in production applications."]]],[]]