管理 Catalog、数据库和表¶
在工作区内按名称准备 Catalog 和数据库,再创建一张表并读取其数据。完成后会得到表资源,后续读取、预览、清空或删除都在这个资源上进行。
任务流程¶
调用方提供工作区、Catalog 名称、数据库名称、表名称和列定义。
SDK 在工作区内查找同名 Catalog 和数据库;没有匹配项时创建它们。
SDK 在该数据库中创建表,并返回这张表对应的资源。
使用返回的资源读取表数据。
准备¶
需要的内容 |
在本页中的作用 |
|---|---|
已认证的客户端和已选择的工作区 |
确定本次资源操作的作用域。 |
Catalog、数据库和表名称 |
选择或创建目标位置。 |
列定义 |
创建表结构。 |
创建权限 |
允许在目标位置创建不存在的资源。 |
本页不会创建客户端或选择工作区。先在开发者快速开始中完成首次连接,再将已选择的工作区交给下面的示例。
创建表¶
下面的函数在一个已有工作区中准备 Catalog 和数据库,然后创建表。按名称准备不是只读查询:没有同名资源时会产生创建操作。
import moi_product_sdk as sdk
def create_orders_table(workspace):
catalog = workspace.prepare_catalog("analytics")
database = catalog.prepare_database("sales")
table, _ = database.create_table_from_columns(
"orders",
[
sdk.TableColumn("order_id", "INT"),
sdk.TableColumn("customer_name", "VARCHAR"),
],
)
return table
import (
"context"
sdk "github.com/matrixorigin/matrixflow/sdk/go-sdk"
)
func createOrdersTable(ctx context.Context, workspace *sdk.WorkspaceHandle) (*sdk.TableHandle, error) {
catalog, err := workspace.PrepareCatalog(ctx, "analytics")
if err != nil {
return nil, err
}
database, err := catalog.PrepareDatabase(ctx, "sales")
if err != nil {
return nil, err
}
table, _, err := database.CreateTable(ctx, "orders", []sdk.TableColumn{
{Name: "order_id", Type: "INT"},
{Name: "customer_name", Type: "VARCHAR"},
})
if err != nil {
return nil, err
}
return table, nil
}
读取表数据¶
创建函数返回的表资源可直接用于读取数据。下面的代码只读取当前返回的数据;它不证明后续写入、导入或查询已经完成。
rows = table.data()
rows, err := table.Data(ctx)
if err != nil {
return err
}
_ = rows
结果确认¶
保留创建函数返回的表资源,或使用创建、列表和调用方明确提供的资源标识重新取得它。读取结果只能确认这次读取;导入、查询和其他写入操作应在各自页面按任务状态或结果确认。
限制¶
表名称和列定义必须由调用方提供;SDK 不会从文件名或显示名称推断表结构。
删除或清空表会改变数据。执行前确认目标工作区、Catalog、数据库和表。
下一步¶
最后更新于