테이블에서 행을 업데이트하거나 삽입합니다.
코드 샘플
C++
Bigtable용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Bigtable 클라이언트 라이브러리를 참조하세요.
Bigtable에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
struct InsertOrUpdate {
std::string column_family;
std::string column;
std::string value;
};
namespace cbt = ::google::cloud::bigtable;
[](cbt::Table table, std::string const& key,
std::vector<InsertOrUpdate> const& inserts) {
cbt::SingleRowMutation mutation(key);
for (auto const& mut : inserts) {
mutation.emplace_back(
cbt::SetCell(mut.column_family, mut.column, mut.value));
}
google::cloud::Status status = table.Apply(std::move(mutation));
if (!status.ok()) throw std::runtime_error(status.message());
std::cout << "Row successfully updated\n";
}
PHP
Bigtable용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Bigtable 클라이언트 라이브러리를 참조하세요.
Bigtable에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
use Google\ApiCore\ApiException;
use Google\Cloud\Bigtable\Admin\V2\Client\BigtableInstanceAdminClient;
use Google\Cloud\Bigtable\Admin\V2\Client\BigtableTableAdminClient;
use Google\Cloud\Bigtable\Admin\V2\ColumnFamily;
use Google\Cloud\Bigtable\Admin\V2\CreateTableRequest;
use Google\Cloud\Bigtable\Admin\V2\ModifyColumnFamiliesRequest;
use Google\Cloud\Bigtable\Admin\V2\ModifyColumnFamiliesRequest\Modification;
use Google\Cloud\Bigtable\Admin\V2\Table as TableClass;
use Google\Cloud\Bigtable\BigtableClient;
/**
* Perform insert/update operations on a Bigtable
*
* @param string $projectId The Google Cloud project ID
* @param string $instanceId The ID of the Bigtable instance
* @param string $tableId The ID of the table on which we intend to insert/update rows
*/
function insert_update_rows(
string $projectId,
string $instanceId = 'quickstart-instance-php',
string $tableId = 'bigtable-php-table'
): void {
$dataClient = new BigtableClient([
'projectId' => $projectId,
]);
$instanceAdminClient = new BigtableInstanceAdminClient();
$tableAdminClient = new BigtableTableAdminClient();
$instanceName = $instanceAdminClient->instanceName($projectId, $instanceId);
$tableName = $tableAdminClient->tableName($projectId, $instanceId, $tableId);
$table = new TableClass();
printf('Creating table %s' . PHP_EOL, $tableId);
try {
$createTableRequest = (new CreateTableRequest())
->setParent($instanceName)
->setTableId($tableId)
->setTable($table);
$tableAdminClient->createtable($createTableRequest);
} catch (ApiException $e) {
if ($e->getStatus() === 'ALREADY_EXISTS') {
printf('Table %s already exists.' . PHP_EOL, $tableId);
return;
}
throw $e;
}
printf('Table %s created' . PHP_EOL, $tableId);
$table = $dataClient->table($instanceId, $tableId);
$columnFamilyId = 'cf1';
printf('Creating column family %s' . PHP_EOL, $columnFamilyId);
$columnFamily4 = new ColumnFamily();
$columnModification = new Modification();
$columnModification->setId($columnFamilyId);
$columnModification->setCreate($columnFamily4);
$modifyColumnFamiliesRequest = (new ModifyColumnFamiliesRequest())
->setName($tableName)
->setModifications([$columnModification]);
$tableAdminClient->modifyColumnFamilies($modifyColumnFamiliesRequest);
printf('Inserting data in the table' . PHP_EOL);
$insertRows = [
'rk5' => [
'cf1' => [
'cq5' => [
'value' => 'Value5',
'timeStamp' => time_in_microseconds()
]
]
]
];
$table->upsert($insertRows);
printf('Data inserted successfully!' . PHP_EOL);
}
function time_in_microseconds(): float
{
$mt = microtime(true);
$mt = sprintf('%.03f', $mt);
return (float) $mt * 1000000;
}
다음 단계
다른 Google Cloud 제품의 코드 샘플을 검색하고 필터링하려면 Google Cloud 샘플 브라우저를 참조하세요.