このトピックでは、Go SDK V2 を使用してテーブルバケット、名前空間、テーブルの作成・削除・クエリを行う方法と、それらの暗号化設定、ポリシー、メンテナンス設定を管理する方法について説明します。
注意事項
このトピックのコード例では、中国 (杭州) のリージョン ID
cn-hangzhouを使用しています。ご利用の実際のリージョン ID に置き換えてください。このトピックでは、環境変数からアクセス認証情報を取得する方法を例示しています。アクセス認証情報の設定方法については、「アクセス認証情報の設定」をご参照ください。サンプルコードを実行する前に、
OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数を設定済みであることを確認してください。
テーブルバケット操作
CreateTableBucket
オプションのサーバ側暗号化を指定してテーブルバケットを作成します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
name string
)
func init() {
flag.StringVar(®ion, "region", "", "テーブルバケットが配置されているリージョン。")
flag.StringVar(&name, "name", "", "テーブルバケットの名前。")
}
func main() {
flag.Parse()
if len(name) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット名は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.CreateTableBucket(context.TODO(), &tables.CreateTableBucketRequest{
Name: oss.Ptr(name),
})
if err != nil {
log.Fatalf("テーブルバケットの作成に失敗しました: %v", err)
}
log.Printf("テーブルバケット作成結果:%#v\n", result)
}DeleteTableBucket
指定されたテーブルバケットを削除します。このバケットには名前空間が含まれていてはなりません。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットのリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.DeleteTableBucket(context.TODO(), &tables.DeleteTableBucketRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
})
if err != nil {
log.Fatalf("テーブルバケットの削除に失敗しました: %v", err)
}
log.Printf("テーブルバケット削除結果:%#v\n", result)
}GetTableBucket
指定されたテーブルバケットの詳細情報を取得します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.GetTableBucket(context.TODO(), &tables.GetTableBucketRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
})
if err != nil {
log.Fatalf("テーブルバケットの取得に失敗しました: %v", err)
}
log.Printf("テーブルバケット取得結果:%#v\n", result)
}ListTableBuckets
アカウント内のすべてのテーブルバケットを一覧表示します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
}
func main() {
flag.Parse()
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
p := client.NewListTableBucketsPaginator(&tables.ListTableBucketsRequest{})
var i int
log.Println("テーブルバケット:")
for p.HasNext() {
i++
page, err := p.NextPage(context.TODO())
if err != nil {
log.Fatalf("ページ %v の取得に失敗しました: %v", i, err)
}
// 取得したテーブルバケットをログ出力
for _, b := range page.TableBuckets {
log.Printf("テーブルバケット %v,%v,%v,%v,%v,%v\n", oss.ToString(b.Name), oss.ToString(b.Arn), oss.ToString(b.OwnerAccountId), oss.ToString(b.TableBucketId), oss.ToString(b.CreatedAt), oss.ToString(b.Type))
}
}
}PutTableBucketEncryption
テーブルバケットのサーバ側暗号化を構成します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.PutTableBucketEncryption(context.TODO(), &tables.PutTableBucketEncryptionRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
EncryptionConfiguration: &tables.EncryptionConfiguration{
SseAlgorithm: oss.Ptr("AES256"),
},
})
if err != nil {
log.Fatalf("テーブルバケット暗号化設定の適用に失敗しました: %v", err)
}
log.Printf("テーブルバケット暗号化設定適用結果:%#v\n", result)
}GetTableBucketEncryption
テーブルバケットの暗号化構成を取得します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.GetTableBucketEncryption(context.TODO(), &tables.GetTableBucketEncryptionRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
})
if err != nil {
log.Fatalf("テーブルバケット暗号化構成の取得に失敗しました: %v", err)
}
log.Printf("テーブルバケット暗号化構成取得結果:%#v\n", result)
}テーブルバケット暗号化の削除
テーブルバケットの暗号化構成を削除します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "テーブルバケットのリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.DeleteTableBucketEncryption(context.TODO(), &tables.DeleteTableBucketEncryptionRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
})
if err != nil {
log.Fatalf("テーブルバケット暗号化の削除に失敗しました: %v", err)
}
log.Printf("テーブルバケット暗号化の削除に成功しました: %#v\n", result)
}PutTableBucketPolicy
テーブルバケットのリソースポリシーを設定または置き換えます。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.PutTableBucketPolicy(context.TODO(), &tables.PutTableBucketPolicyRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
ResourcePolicy: oss.Ptr(`
{
"Version":"1",
"Statement":[
{
"Action":[
"oss:GetTable"
],
"Effect":"Deny",
"Principal":["1234567890"],
"Resource":["acs:osstable:cn-hangzhou:1234567890:bucket/demo-bucket"]
}
]
}
`),
})
if err != nil {
log.Fatalf("テーブルバケットポリシーの適用に失敗しました: %v", err)
}
log.Printf("テーブルバケットポリシー適用結果:%#v\n", result)
}GetTableBucketPolicy
テーブルバケットのリソースポリシーを取得します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.GetTableBucketPolicy(context.TODO(), &tables.GetTableBucketPolicyRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
})
if err != nil {
log.Fatalf("テーブルバケットポリシーの取得に失敗しました: %v", err)
}
log.Printf("テーブルバケットポリシー取得結果:%#v\n", result)
}DeleteTableBucketPolicy
テーブルバケットからリソースポリシーを削除します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.DeleteTableBucketPolicy(context.TODO(), &tables.DeleteTableBucketPolicyRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
})
if err != nil {
log.Fatalf("テーブルバケットのリソースポリシー削除に失敗しました: %v", err)
}
log.Printf("テーブルバケットポリシー削除結果:%#v\n", result)
}PutTableBucketMaintenanceConfiguration
PutTableBucketMaintenanceConfiguration は、テーブルバケットのメンテナンス構成を設定します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "テーブルバケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.PutTableBucketMaintenanceConfiguration(context.TODO(), &tables.PutTableBucketMaintenanceConfigurationRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Type: oss.Ptr("icebergUnreferencedFileRemoval"),
Value: &tables.MaintenanceValue{
Settings: &tables.MaintenanceSettings{
IcebergUnreferencedFileRemoval: &tables.SettingsDetail{
UnreferencedDays: oss.Ptr(4),
NonCurrentDays: oss.Ptr(10),
},
},
Status: oss.Ptr("enabled"),
},
})
if err != nil {
log.Fatalf("テーブルバケットメンテナンス構成の適用に失敗しました: %v", err)
}
log.Printf("テーブルバケットメンテナンス構成適用結果:%#v\n", result)
}GetTableBucketMaintenanceConfiguration
テーブルバケットのメンテナンス構成を取得します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "テーブルバケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.GetTableBucketMaintenanceConfiguration(context.TODO(), &tables.GetTableBucketMaintenanceConfigurationRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
})
if err != nil {
log.Fatalf("テーブルバケットメンテナンス構成の取得に失敗しました: %v", err)
}
log.Printf("テーブルバケットメンテナンス構成取得結果: %#v\n", result)
}名前空間操作
CreateNamespace
テーブルバケット内に名前空間を作成します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "テーブルバケットのリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.CreateNamespace(context.TODO(), &tables.CreateNamespaceRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: []string{"my_space"},
})
if err != nil {
log.Fatalf("名前空間の作成に失敗しました: %v", err)
}
log.Printf("名前空間作成結果:%#v\n", result)
}DeleteNamespace
指定された名前空間を削除します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.DeleteNamespace(context.TODO(), &tables.DeleteNamespaceRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr("my_space"),
})
if err != nil {
log.Fatalf("名前空間の削除に失敗しました: %v", err)
}
log.Printf("名前空間削除結果:%#v\n", result)
}GetNamespace
指定された名前空間の詳細情報を取得します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.GetNamespace(context.TODO(), &tables.GetNamespaceRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr("my_space"),
})
if err != nil {
log.Fatalf("名前空間の取得に失敗しました: %v", err)
}
log.Printf("名前空間取得結果:%#v\n", result)
}名前空間の一覧表示
テーブルバケット内のすべての名前空間を一覧表示します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
p := client.NewListNameSpacesPaginator(&tables.ListNamespacesRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
})
var i int
log.Println("名前空間:")
for p.HasNext() {
i++
page, err := p.NextPage(context.TODO())
if err != nil {
log.Fatalf("ページ %v の取得に失敗しました: %v", i, err)
}
for _, b := range page.Namespaces {
log.Printf("名前空間 %v,%v,%v,%v,%v,%v\n", oss.ToString(b.CreatedAt), oss.ToString(b.CreatedBy), oss.ToString(b.OwnerAccountId), oss.ToString(b.TableBucketId), oss.ToString(b.NamespaceId), b.Namespace)
}
}
}テーブル操作
CreateTable
Iceberg テーブルを作成します。スキーマ、パーティション、暗号化構成を指定できます。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
name string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "名前空間の名前。")
flag.StringVar(&name, "name", "", "テーブルの名前。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(namespace) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。名前空間名は必須です。")
}
if len(name) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブル名は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.CreateTable(context.TODO(), &tables.CreateTableRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
Name: oss.Ptr(name),
Format: oss.Ptr("ICEBERG"),
})
if err != nil {
log.Fatalf("テーブルの作成に失敗しました: %v", err)
}
log.Printf("テーブル作成結果:%#v\n", result)
}DeleteTable
指定されたテーブルを削除します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
name string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "名前空間の名前。")
flag.StringVar(&name, "name", "", "テーブルの名前。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(namespace) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。名前空間名は必須です。")
}
if len(name) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブル名は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.DeleteTable(context.TODO(), &tables.DeleteTableRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
Name: oss.Ptr(name),
})
if err != nil {
log.Fatalf("テーブルの削除に失敗しました: %v", err)
}
log.Printf("テーブル削除結果:%#v\n", result)
}GetTable
テーブルの詳細情報を取得します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
name string
tableArn string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットのリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "名前空間の名前。")
flag.StringVar(&name, "name", "", "テーブルの名前。")
flag.StringVar(&tableArn, "table-arn", "", "テーブルの ARN。")
}
func main() {
flag.Parse()
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
// バケット ARN、名前空間、テーブル名を指定して GetTable を呼び出します。
result, err := client.GetTable(context.TODO(), &tables.GetTableRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
Name: oss.Ptr(name),
})
// または、テーブル ARN を指定して GetTable を呼び出します。
//result, err := client.GetTable(context.TODO(), &tables.GetTableRequest{
// TableARN: oss.Ptr(tableArn),
//})
if err != nil {
log.Fatalf("テーブルの取得に失敗しました: %v", err)
}
log.Printf("テーブル取得結果:%#v\n", result)
}ListTables
名前空間内のすべてのテーブルを一覧表示します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "名前空間の名前。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(namespace) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。名前空間名は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
p := client.NewListTablesPaginator(&tables.ListTablesRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
})
var i int
log.Println("テーブル:")
for p.HasNext() {
i++
page, err := p.NextPage(context.TODO())
if err != nil {
log.Fatalf("ページ %v の取得に失敗しました: %v", i, err)
}
for _, b := range page.Tables {
log.Printf("テーブル %v,%v,%v,%v,%v,%v\n", oss.ToString(b.CreatedAt), oss.ToString(b.TableARN), oss.ToString(b.ModifiedAt), oss.ToString(b.Type), oss.ToString(b.Name), b.Namespace)
}
}
}RenameTable
テーブルの名前を変更するか、別の名前空間に移動します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
name string
newName string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "名前空間の名前。")
flag.StringVar(&name, "name", "", "テーブルの名前。")
flag.StringVar(&newName, "new-name", "", "テーブルの新しい名前。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(namespace) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。名前空間名は必須です。")
}
if len(name) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブル名は必須です。")
}
if len(newName) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。新しいテーブル名は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.RenameTable(context.TODO(), &tables.RenameTableRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
Name: oss.Ptr(name),
NewName: oss.Ptr(newName),
})
if err != nil {
log.Fatalf("テーブル名の変更に失敗しました: %v", err)
}
log.Printf("テーブル名変更結果:%#v\n", result)
}テーブルメタデータファイルの場所の取得
テーブルのメタデータファイルの場所を取得します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
name string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットのリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "名前空間の名前。")
flag.StringVar(&name, "name", "", "テーブルの名前。")
}
func main() {
flag.Parse()
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(namespace) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。名前空間名は必須です。")
}
if len(name) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブル名は必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.GetTableMetadataLocation(context.TODO(), &tables.GetTableMetadataLocationRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
Name: oss.Ptr(name),
})
if err != nil {
log.Fatalf("テーブルメタデータファイルの場所取得に失敗しました: %v", err)
}
log.Printf("テーブルメタデータファイルの場所取得結果:%#v\n", result)
}UpdateTableMetadataLocation
テーブルのメタデータファイルの場所を更新します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
name string
metadataLocation string
versionToken string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "名前空間の名前。")
flag.StringVar(&name, "name", "", "テーブルの名前。")
flag.StringVar(&metadataLocation, "metadata-location", "", "テーブルのメタデータファイルの場所。")
flag.StringVar(&versionToken, "version-token", "", "テーブルのバージョントークン。")
}
func main() {
flag.Parse()
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(namespace) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。名前空間名は必須です。")
}
if len(name) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブル名は必須です。")
}
if len(metadataLocation) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルメタデータファイルの場所は必須です。")
}
if len(versionToken) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバージョントークンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.UpdateTableMetadataLocation(context.TODO(), &tables.UpdateTableMetadataLocationRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
Name: oss.Ptr(name),
MetadataLocation: oss.Ptr(metadataLocation),
VersionToken: oss.Ptr(versionToken),
})
if err != nil {
log.Fatalf("テーブルメタデータファイルの場所更新に失敗しました: %v", err)
}
log.Printf("テーブルメタデータファイルの場所更新結果:%#v\n", result)
}GetTableEncryption
テーブルの暗号化構成を取得します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
name string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "名前空間の名前。")
flag.StringVar(&name, "name", "", "テーブルの名前。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(namespace) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。名前空間名は必須です。")
}
if len(name) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブル名は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.GetTableEncryption(context.TODO(), &tables.GetTableEncryptionRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
Name: oss.Ptr(name),
})
if err != nil {
log.Fatalf("テーブル暗号化構成の取得に失敗しました: %v", err)
}
log.Printf("テーブル暗号化構成取得結果:%#v\n", result)
}PutTablePolicy
テーブルのリソースポリシーを設定します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
name string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットのリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "名前空間の名前。")
flag.StringVar(&name, "name", "", "テーブルの名前。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(namespace) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。名前空間名は必須です。")
}
if len(name) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブル名は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.PutTablePolicy(context.TODO(), &tables.PutTablePolicyRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
Name: oss.Ptr(name),
ResourcePolicy: oss.Ptr(`
{
"Version":"1",
"Statement":[
{
"Action":[
"oss:GetTable"
],
"Effect":"Deny",
"Principal":["1234567890"],
"Resource":["acs:osstable:cn-hangzhou:1234567890:bucket/demo-bucket/table/*"]
}
]
}
`),
})
if err != nil {
log.Fatalf("テーブルポリシーの適用に失敗しました: %v", err)
}
log.Printf("テーブルポリシー適用結果: %#v\n", result)
}GetTablePolicy
テーブルのリソースポリシーを取得します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
name string
)
func init() {
flag.StringVar(®ion, "region", "", "テーブルバケットのリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "テーブルの名前空間。")
flag.StringVar(&name, "name", "", "テーブルの名前。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(namespace) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。名前空間は必須です。")
}
if len(name) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブル名は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.GetTablePolicy(context.TODO(), &tables.GetTablePolicyRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
Name: oss.Ptr(name),
})
if err != nil {
log.Fatalf("テーブルポリシーの取得に失敗しました: %v", err)
}
log.Printf("テーブルポリシー取得結果: %#v\n", result)
}DeleteTablePolicy
テーブルのリソースポリシーを削除します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
name string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "名前空間の名前。")
flag.StringVar(&name, "name", "", "テーブルの名前。")
}
func main() {
flag.Parse()
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(namespace) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。名前空間名は必須です。")
}
if len(name) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブル名は必須です。")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.DeleteTablePolicy(context.TODO(), &tables.DeleteTablePolicyRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
Name: oss.Ptr(name),
})
if err != nil {
log.Fatalf("テーブルポリシーの削除に失敗しました: %v", err)
}
log.Printf("テーブルポリシー削除結果:%#v\n", result)
}PutTableMaintenanceConfiguration
テーブルのメンテナンス構成を設定します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
name string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "名前空間の名前。")
flag.StringVar(&name, "name", "", "テーブルの名前。")
}
func main() {
flag.Parse()
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(namespace) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。名前空間名は必須です。")
}
if len(name) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブル名は必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
// icebergCompaction タイプ
result, err := client.PutTableMaintenanceConfiguration(context.TODO(), &tables.PutTableMaintenanceConfigurationRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
Name: oss.Ptr(name),
Type: oss.Ptr("icebergCompaction"),
Value: &tables.TableMaintenanceValue{
Status: oss.Ptr("enabled"),
Settings: &tables.TableMaintenanceSettings{
IcebergCompaction: &tables.IcebergCompactionSettingsDetail{
TargetFileSizeMB: oss.Ptr(400),
Strategy: oss.Ptr("auto"),
},
},
},
})
// icebergSnapshotManagement タイプ
//result, err := client.PutTableMaintenanceConfiguration(context.TODO(), &tables.PutTableMaintenanceConfigurationRequest{
// TableBucketARN: oss.Ptr(tableBucketArn),
// Namespace: oss.Ptr(namespace),
// Name: oss.Ptr(name),
// Type: oss.Ptr("icebergSnapshotManagement"),
// Value: &tables.TableMaintenanceValue{
// Status: oss.Ptr("enabled"),
// Settings: &tables.TableMaintenanceSettings{
// IcebergSnapshotManagement: &tables.IcebergSnapshotManagementSettingsDetail{
// MaxSnapshotAgeHours: oss.Ptr(350),
// MinSnapshotsToKeep: oss.Ptr(1),
// },
// },
// },
//})
if err != nil {
log.Fatalf("テーブルメンテナンス構成の適用に失敗しました: %v", err)
}
log.Printf("テーブルメンテナンス構成適用結果:%#v\n", result)
}GetTableMaintenanceConfiguration
テーブルのメンテナンス構成を返します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
name string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "名前空間の名前。")
flag.StringVar(&name, "name", "", "テーブルの名前。")
}
func main() {
flag.Parse()
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(namespace) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。名前空間名は必須です。")
}
if len(name) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブル名は必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.GetTableMaintenanceConfiguration(context.TODO(), &tables.GetTableMaintenanceConfigurationRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
Name: oss.Ptr(name),
})
if err != nil {
log.Fatalf("テーブルメンテナンス構成の取得に失敗しました: %v", err)
}
log.Printf("テーブルメンテナンス構成取得結果:%#v\n", result)
}GetTableMaintenanceJobStatus
テーブルメンテナンスジョブのステータスを取得します。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/tables"
)
var (
region string
tableBucketArn string
namespace string
name string
)
func init() {
flag.StringVar(®ion, "region", "", "バケットが配置されているリージョン。")
flag.StringVar(&tableBucketArn, "table-bucket-arn", "", "テーブルバケットの ARN。")
flag.StringVar(&namespace, "namespace", "", "名前空間の名前。")
flag.StringVar(&name, "name", "", "テーブルの名前。")
}
func main() {
flag.Parse()
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。リージョンは必須です。")
}
if len(tableBucketArn) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブルバケット ARN は必須です。")
}
if len(namespace) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。名前空間名は必須です。")
}
if len(name) == 0 {
flag.PrintDefaults()
log.Fatalf("無効なパラメーターです。テーブル名は必須です。")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := tables.NewTablesClient(cfg)
result, err := client.GetTableMaintenanceJobStatus(context.TODO(), &tables.GetTableMaintenanceJobStatusRequest{
TableBucketARN: oss.Ptr(tableBucketArn),
Namespace: oss.Ptr(namespace),
Name: oss.Ptr(name),
})
if err != nil {
log.Fatalf("テーブルメンテナンスジョブステータスの取得に失敗しました: %v", err)
}
log.Printf("テーブルメンテナンスジョブステータス取得結果:%#v\n", result)
}