tessl install tessl/golang-cloud-google-com--go--bigquery@1.72.0Google 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
The Analytics Hub API enables data sharing through exchanges and listings, allowing organizations to share datasets across projects and companies.
import "cloud.google.com/go/bigquery/analyticshub/apiv1"
import "cloud.google.com/go/bigquery/analyticshub/apiv1/analyticshubpb"func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error)type Client struct{}func (c *Client) Close() errorCreate an Analytics Hub client:
ctx := context.Background()
client, err := analyticshub.NewClient(ctx)
if err != nil {
return err
}
defer client.Close()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)func (c *Client) ListDataExchanges(ctx context.Context, req *analyticshubpb.ListDataExchangesRequest, opts ...gax.CallOption) *DataExchangeIteratorfunc (c *Client) GetDataExchange(ctx context.Context, req *analyticshubpb.GetDataExchangeRequest, opts ...gax.CallOption) (*analyticshubpb.DataExchange, error)func (c *Client) UpdateDataExchange(ctx context.Context, req *analyticshubpb.UpdateDataExchangeRequest, opts ...gax.CallOption) (*analyticshubpb.DataExchange, error)func (c *Client) DeleteDataExchange(ctx context.Context, req *analyticshubpb.DeleteDataExchangeRequest, opts ...gax.CallOption) errorfunc (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)func (c *Client) ListListings(ctx context.Context, req *analyticshubpb.ListListingsRequest, opts ...gax.CallOption) *ListingIteratorfunc (c *Client) SubscribeListing(ctx context.Context, req *analyticshubpb.SubscribeListingRequest, opts ...gax.CallOption) (*analyticshubpb.SubscribeListingResponse, error)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)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)
}