CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/golang-cloud-google-com--go--bigquery

Google Cloud BigQuery client library providing comprehensive Go APIs for querying, loading data, managing datasets and tables, streaming inserts, and accessing BigQuery's ecosystem of services including Storage, Analytics Hub, Data Transfer, and Migration APIs

Overview
Eval results
Files

analytics-hub.mddocs/api-services/

Analytics Hub API

The Analytics Hub API enables data sharing through exchanges and listings, allowing organizations to share datasets across projects and companies.

Package Import

import "cloud.google.com/go/bigquery/analyticshub/apiv1"
import "cloud.google.com/go/bigquery/analyticshub/apiv1/analyticshubpb"

Client Creation

func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error)
type Client struct{}
func (c *Client) Close() error

Create an Analytics Hub client:

ctx := context.Background()
client, err := analyticshub.NewClient(ctx)
if err != nil {
    return err
}
defer client.Close()

Data Exchanges

Create Data Exchange

func (c *Client) CreateDataExchange(ctx context.Context, req *analyticshubpb.CreateDataExchangeRequest, opts ...gax.CallOption) (*analyticshubpb.DataExchange, error)
req := &analyticshubpb.CreateDataExchangeRequest{
    Parent: "projects/my-project/locations/us",
    DataExchangeId: "my-exchange",
    DataExchange: &analyticshubpb.DataExchange{
        DisplayName: "My Data Exchange",
        Description: "Exchange for sharing datasets",
    },
}

exchange, err := client.CreateDataExchange(ctx, req)

List Data Exchanges

func (c *Client) ListDataExchanges(ctx context.Context, req *analyticshubpb.ListDataExchangesRequest, opts ...gax.CallOption) *DataExchangeIterator

Get Data Exchange

func (c *Client) GetDataExchange(ctx context.Context, req *analyticshubpb.GetDataExchangeRequest, opts ...gax.CallOption) (*analyticshubpb.DataExchange, error)

Update Data Exchange

func (c *Client) UpdateDataExchange(ctx context.Context, req *analyticshubpb.UpdateDataExchangeRequest, opts ...gax.CallOption) (*analyticshubpb.DataExchange, error)

Delete Data Exchange

func (c *Client) DeleteDataExchange(ctx context.Context, req *analyticshubpb.DeleteDataExchangeRequest, opts ...gax.CallOption) error

Listings

Create Listing

func (c *Client) CreateListing(ctx context.Context, req *analyticshubpb.CreateListingRequest, opts ...gax.CallOption) (*analyticshubpb.Listing, error)
req := &analyticshubpb.CreateListingRequest{
    Parent: "projects/my-project/locations/us/dataExchanges/my-exchange",
    ListingId: "my-listing",
    Listing: &analyticshubpb.Listing{
        DisplayName: "Public Dataset",
        Description: "Publicly available dataset for analysis",
        Source: &analyticshubpb.Listing_BigqueryDataset{
            BigqueryDataset: &analyticshubpb.Listing_BigQueryDatasetSource{
                Dataset: "projects/my-project/datasets/public_data",
            },
        },
    },
}

listing, err := client.CreateListing(ctx, req)

List Listings

func (c *Client) ListListings(ctx context.Context, req *analyticshubpb.ListListingsRequest, opts ...gax.CallOption) *ListingIterator

Subscribe to Listing

func (c *Client) SubscribeListing(ctx context.Context, req *analyticshubpb.SubscribeListingRequest, opts ...gax.CallOption) (*analyticshubpb.SubscribeListingResponse, error)

IAM Policy Management

func (c *Client) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
func (c *Client) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
func (c *Client) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error)

Example

package main

import (
    "context"
    "fmt"
    "log"

    "cloud.google.com/go/bigquery/analyticshub/apiv1"
    "cloud.google.com/go/bigquery/analyticshub/apiv1/analyticshubpb"
)

func main() {
    ctx := context.Background()
    client, err := analyticshub.NewClient(ctx)
    if err != nil {
        log.Fatal(err)
    }
    defer client.Close()

    // Create data exchange
    exchange, err := client.CreateDataExchange(ctx, &analyticshubpb.CreateDataExchangeRequest{
        Parent: "projects/my-project/locations/us",
        DataExchangeId: "public-exchange",
        DataExchange: &analyticshubpb.DataExchange{
            DisplayName: "Public Data Exchange",
        },
    })
    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("Created exchange: %s\n", exchange.Name)

    // Create listing
    listing, err := client.CreateListing(ctx, &analyticshubpb.CreateListingRequest{
        Parent: exchange.Name,
        ListingId: "dataset-listing",
        Listing: &analyticshubpb.Listing{
            DisplayName: "Dataset Listing",
            Source: &analyticshubpb.Listing_BigqueryDataset{
                BigqueryDataset: &analyticshubpb.Listing_BigQueryDatasetSource{
                    Dataset: "projects/my-project/datasets/my_dataset",
                },
            },
        },
    })
    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("Created listing: %s\n", listing.Name)
}

Install with Tessl CLI

npx tessl i tessl/golang-cloud-google-com--go--bigquery

docs

api-services

analytics-hub.md

biglake.md

connection.md

data-exchange.md

data-policies.md

data-transfer.md

migration.md

reservation.md

advanced-features.md

client-setup.md

data-export.md

data-loading.md

datasets.md

index.md

jobs.md

queries.md

storage-read.md

storage-write.md

tables.md

tile.json