Exportieren Sie ein Asset-Inventar nach BigQuery.
Dokumentationsseiten mit diesem Codebeispiel
Die folgenden Dokumente enthalten das Codebeispiel im Kontext:
Codebeispiel
Go
// Sample asset-quickstart exports assets to given bigquery table.
package main
import (
"context"
"fmt"
"log"
"os"
"strings"
asset "cloud.google.com/go/asset/apiv1"
assetpb "google.golang.org/genproto/googleapis/cloud/asset/v1"
)
func main() {
ctx := context.Background()
projectID := os.Getenv("GOOGLE_CLOUD_PROJECT")
client, err := asset.NewClient(ctx)
if err != nil {
log.Fatalf("asset.NewClient: %v", err)
}
defer client.Close()
datasetID := strings.Replace(fmt.Sprintf("%s-for-assets", projectID), "-", "_", -1)
dataset := fmt.Sprintf("projects/%s/datasets/%s", projectID, datasetID)
req := &assetpb.ExportAssetsRequest{
Parent: fmt.Sprintf("projects/%s", projectID),
OutputConfig: &assetpb.OutputConfig{
Destination: &assetpb.OutputConfig_BigqueryDestination{
BigqueryDestination: &assetpb.BigQueryDestination{
Dataset: dataset,
Table: "test",
Force: true,
},
},
},
}
op, err := client.ExportAssets(ctx, req)
if err != nil {
log.Fatalf("ExportAssets: %v", err)
}
resp, err := op.Wait(ctx)
if err != nil {
log.Fatalf("Wait: %v", err)
}
fmt.Print(resp)
}
Java
// Imports the Google Cloud client library
import com.google.cloud.ServiceOptions;
import com.google.cloud.asset.v1.AssetServiceClient;
import com.google.cloud.asset.v1.BigQueryDestination;
import com.google.cloud.asset.v1.ContentType;
import com.google.cloud.asset.v1.ExportAssetsRequest;
import com.google.cloud.asset.v1.ExportAssetsResponse;
import com.google.cloud.asset.v1.OutputConfig;
import com.google.cloud.asset.v1.PartitionSpec;
import com.google.cloud.asset.v1.ProjectName;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
public class ExportAssetsBigqueryExample {
// Use the default project Id.
private static final String projectId = ServiceOptions.getDefaultProjectId();
// Export assets to BigQuery for a project.
public static void exportBigQuery(
String bigqueryDataset, String bigqueryTable, ContentType contentType, boolean isPerType)
throws IOException, IllegalArgumentException, InterruptedException, ExecutionException {
try (AssetServiceClient client = AssetServiceClient.create()) {
ProjectName parent = ProjectName.of(projectId);
OutputConfig outputConfig;
// Outputs to per-type BigQuery table.
if (isPerType) {
outputConfig =
OutputConfig.newBuilder()
.setBigqueryDestination(
BigQueryDestination.newBuilder()
.setDataset(bigqueryDataset)
.setTable(bigqueryTable)
.setForce(true)
.setSeparateTablesPerAssetType(true)
.setPartitionSpec(
PartitionSpec.newBuilder()
.setPartitionKey(PartitionSpec.PartitionKey.READ_TIME)
.build())
.build())
.build();
} else {
outputConfig =
OutputConfig.newBuilder()
.setBigqueryDestination(
BigQueryDestination.newBuilder()
.setDataset(bigqueryDataset)
.setTable(bigqueryTable)
.setForce(true)
.build())
.build();
}
ExportAssetsRequest request =
ExportAssetsRequest.newBuilder()
.setParent(parent.toString())
.setContentType(contentType)
.setOutputConfig(outputConfig)
.build();
ExportAssetsResponse response = client.exportAssetsAsync(request).get();
System.out.println(response);
}
}
}
Node.js
/**
* TODO(developer): Uncomment these variables before running the sample.
*/
// const dataSet = 'projects/project_id/datasets/dataset_id';
// const table = 'mytable';
const {AssetServiceClient} = require('@google-cloud/asset');
const client = new AssetServiceClient();
async function exportAssetsBigquery() {
const projectId = await client.getProjectId();
const projectResource = client.projectPath(projectId);
const dataset = dataSet;
const request = {
parent: projectResource,
outputConfig: {
bigqueryDestination: {
dataset: `projects/${projectId}/${dataset}`,
table: table,
force: true,
},
},
};
// Handle the operation using the promise pattern.
const [operation] = await client.exportAssets(request);
// Operation#promise starts polling for the completion of the operation.
const [result] = await operation.promise();
// Do things with with the response.
console.log(result);
}
exportAssetsBigquery();
Python
from google.cloud import asset_v1
# TODO project_id = 'Your Google Cloud Project ID'
# TODO dataset = 'Your BigQuery dataset path'
# TODO table = 'Your BigQuery table name'
# TODO content_type ="Content type to export"
client = asset_v1.AssetServiceClient()
parent = "projects/{}".format(project_id)
output_config = asset_v1.OutputConfig()
output_config.bigquery_destination.dataset = dataset
output_config.bigquery_destination.table = table
output_config.bigquery_destination.force = True
response = client.export_assets(
request={
"parent": parent,
"content_type": content_type,
"output_config": output_config
}
)
print(response.result())
Nächste Schritte
Codebeispiele für andere Google Cloud-Produkte finden Sie im Google Cloud-Beispielbrowser.