MaterializedView

class MaterializedView : KotlinCustomResource

A materialized view object that can be referenced in SQL queries. To get more information about MaterializedView, see:

Example Usage

Bigtable Materialized View

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const instance = new gcp.bigtable.Instance("instance", {
name: "bt-instance",
clusters: [{
clusterId: "cluster-1",
zone: "us-east1-b",
numNodes: 3,
storageType: "HDD",
}],
deletionProtection: true,
});
const table = new gcp.bigtable.Table("table", {
name: "bt-table",
instanceName: instance.name,
columnFamilies: [{
family: "CF",
}],
});
const materializedView = new gcp.bigtable.MaterializedView("materialized_view", {
materializedViewId: "bt-materialized-view",
instance: instance.name,
deletionProtection: false,
query: `SELECT _key, COUNT(CF['col1']) as Count
FROM \` + "\`bt-table\`" + \`
GROUP BY _key
`,
}, {
dependsOn: [table],
});
import pulumi
import pulumi_gcp as gcp
instance = gcp.bigtable.Instance("instance",
name="bt-instance",
clusters=[{
"cluster_id": "cluster-1",
"zone": "us-east1-b",
"num_nodes": 3,
"storage_type": "HDD",
}],
deletion_protection=True)
table = gcp.bigtable.Table("table",
name="bt-table",
instance_name=instance.name,
column_families=[{
"family": "CF",
}])
materialized_view = gcp.bigtable.MaterializedView("materialized_view",
materialized_view_id="bt-materialized-view",
instance=instance.name,
deletion_protection=False,
query="""SELECT _key, COUNT(CF['col1']) as Count
FROM ` + "`bt-table`" + `
GROUP BY _key
""",
opts = pulumi.ResourceOptions(depends_on=[table]))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var instance = new Gcp.BigTable.Instance("instance", new()
{
Name = "bt-instance",
Clusters = new[]
{
new Gcp.BigTable.Inputs.InstanceClusterArgs
{
ClusterId = "cluster-1",
Zone = "us-east1-b",
NumNodes = 3,
StorageType = "HDD",
},
},
DeletionProtection = true,
});
var table = new Gcp.BigTable.Table("table", new()
{
Name = "bt-table",
InstanceName = instance.Name,
ColumnFamilies = new[]
{
new Gcp.BigTable.Inputs.TableColumnFamilyArgs
{
Family = "CF",
},
},
});
var materializedView = new Gcp.BigTable.MaterializedView("materialized_view", new()
{
MaterializedViewId = "bt-materialized-view",
Instance = instance.Name,
DeletionProtection = false,
Query = @"SELECT _key, COUNT(CF['col1']) as Count
FROM ` + ""`bt-table`"" + `
GROUP BY _key
",
}, new CustomResourceOptions
{
DependsOn =
{
table,
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
instance, err := bigtable.NewInstance(ctx, "instance", &bigtable.InstanceArgs{
Name: pulumi.String("bt-instance"),
Clusters: bigtable.InstanceClusterArray{
&bigtable.InstanceClusterArgs{
ClusterId: pulumi.String("cluster-1"),
Zone: pulumi.String("us-east1-b"),
NumNodes: pulumi.Int(3),
StorageType: pulumi.String("HDD"),
},
},
DeletionProtection: pulumi.Bool(true),
})
if err != nil {
return err
}
table, err := bigtable.NewTable(ctx, "table", &bigtable.TableArgs{
Name: pulumi.String("bt-table"),
InstanceName: instance.Name,
ColumnFamilies: bigtable.TableColumnFamilyArray{
&bigtable.TableColumnFamilyArgs{
Family: pulumi.String("CF"),
},
},
})
if err != nil {
return err
}
_, err = bigtable.NewMaterializedView(ctx, "materialized_view", &bigtable.MaterializedViewArgs{
MaterializedViewId: pulumi.String("bt-materialized-view"),
Instance: instance.Name,
DeletionProtection: pulumi.Bool(false),
Query: pulumi.String("SELECT _key, COUNT(CF['col1']) as Count\nFROM ` + \"`bt-table`\" + `\nGROUP BY _key\n"),
}, pulumi.DependsOn([]pulumi.Resource{
table,
}))
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.bigtable.Instance;
import com.pulumi.gcp.bigtable.InstanceArgs;
import com.pulumi.gcp.bigtable.inputs.InstanceClusterArgs;
import com.pulumi.gcp.bigtable.Table;
import com.pulumi.gcp.bigtable.TableArgs;
import com.pulumi.gcp.bigtable.inputs.TableColumnFamilyArgs;
import com.pulumi.gcp.bigtable.MaterializedView;
import com.pulumi.gcp.bigtable.MaterializedViewArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var instance = new Instance("instance", InstanceArgs.builder()
.name("bt-instance")
.clusters(InstanceClusterArgs.builder()
.clusterId("cluster-1")
.zone("us-east1-b")
.numNodes(3)
.storageType("HDD")
.build())
.deletionProtection(true)
.build());
var table = new Table("table", TableArgs.builder()
.name("bt-table")
.instanceName(instance.name())
.columnFamilies(TableColumnFamilyArgs.builder()
.family("CF")
.build())
.build());
var materializedView = new MaterializedView("materializedView", MaterializedViewArgs.builder()
.materializedViewId("bt-materialized-view")
.instance(instance.name())
.deletionProtection(false)
.query("""
SELECT _key, COUNT(CF['col1']) as Count
FROM ` + "`bt-table`" + `
GROUP BY _key
""")
.build(), CustomResourceOptions.builder()
.dependsOn(table)
.build());
}
}
resources:
instance:
type: gcp:bigtable:Instance
properties:
name: bt-instance
clusters:
- clusterId: cluster-1
zone: us-east1-b
numNodes: 3
storageType: HDD
deletionProtection: true
table:
type: gcp:bigtable:Table
properties:
name: bt-table
instanceName: ${instance.name}
columnFamilies:
- family: CF
materializedView:
type: gcp:bigtable:MaterializedView
name: materialized_view
properties:
materializedViewId: bt-materialized-view
instance: ${instance.name}
deletionProtection: false
query: |
SELECT _key, COUNT(CF['col1']) as Count
FROM ` + "`bt-table`" + `
GROUP BY _key
options:
dependsOn:
- ${table}

Import

MaterializedView can be imported using any of these accepted formats:

  • projects/{{project}}/instances/{{instance}}/materializedViews/{{materialized_view_id}}

  • {{project}}/{{instance}}/{{materialized_view_id}}

  • {{instance}}/{{materialized_view_id}} When using the pulumi import command, MaterializedView can be imported using one of the formats above. For example:

$ pulumi import gcp:bigtable/materializedView:MaterializedView default projects/{{project}}/instances/{{instance}}/materializedViews/{{materialized_view_id}}
$ pulumi import gcp:bigtable/materializedView:MaterializedView default {{project}}/{{instance}}/{{materialized_view_id}}
$ pulumi import gcp:bigtable/materializedView:MaterializedView default {{instance}}/{{materialized_view_id}}

Properties

Link copied to clipboard

Set to true to make the MaterializedView protected against deletion.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val instance: Output<String>?

The name of the instance to create the materialized view within.

Link copied to clipboard

The unique name of the materialized view in the form [_a-zA-Z0-9][-_&#46;a-zA-Z0-9]*.

Link copied to clipboard
val name: Output<String>

The unique name of the requested materialized view. Values are of the form projects/<project>/instances/<instance>/materializedViews/<materializedViewId>.

Link copied to clipboard
val project: Output<String>

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val query: Output<String>

The materialized view's select query.

Link copied to clipboard
val urn: Output<String>