更新时间:2024-03-06 GMT+08:00

表相关

创建DLI表

DLI提供创建DLI表的接口。您可以使用该接口创建数据存储在DLI内部的表。示例代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
def create_dli_tbl(dli_client, db_name, tbl_name):
    cols = [
        Column('col_1', 'string'),
        Column('col_2', 'string'),
        Column('col_3', 'smallint'),
        Column('col_4', 'int'),
        Column('col_5', 'bigint'),
        Column('col_6', 'double'),
        Column('col_7', 'decimal(10,0)'),
        Column('col_8', 'boolean'),
        Column('col_9', 'date'),
        Column('col_10', 'timestamp')
    ]
    sort_cols = ['col_1']
    tbl_schema = TableSchema(tbl_name, cols, sort_cols)
    try:
        table = dli_client.create_dli_table(db_name, tbl_schema)
    except DliException as e:
        print(e)
        return

    print(table)

完整样例代码和依赖包说明请参考:Python SDK概述

创建OBS表

DLI提供创建OBS表的接口。您可以使用该接口创建数据存储在OBS的表。示例代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def create_obs_tbl(dli_client, db_name, tbl_name):
    cols = [
        Column('col_1', 'string'),
        Column('col_2', 'string'),
        Column('col_3', 'smallint'),
        Column('col_4', 'int'),
        Column('col_5', 'bigint'),
        Column('col_6', 'double'),
        Column('col_7', 'decimal(10,0)'),
        Column('col_8', 'boolean'),
        Column('col_9', 'date'),
        Column('col_10', 'timestamp')
    ]
    tbl_schema = TableSchema(tbl_name, cols)
    try:
        table = dli_client.create_obs_table(db_name, tbl_schema,
                                            'obs://bucket/obj',
                                            'csv')
    except DliException as e:
        print(e)
        return

    print(table)
  • 创建OBS表需要指定OBS路径,且该路径需要提前创建。
  • 完整样例代码和依赖包说明请参考:Python SDK概述

删除表

DLI提供删除表的接口。您可以使用该接口删除数据库下的所有表。示例代码如下:

1
2
3
4
5
6
7
8
def delete_tbls(dli_client, db_name):
    try:
        tbls = dli_client.list_tables(db_name)
        for tbl in tbls:
            dli_client.delete_table(db_name, tbl.name)
    except DliException as e:
        print(e)
        return
  • 表删除后,将不可恢复,请谨慎操作。
  • 完整样例代码和依赖包说明请参考:Python SDK概述

查询所有表

DLI提供查询表的接口。您可以使用该接口查询数据库下的所有表。示例代码如下:

1
2
3
4
5
6
7
8
9
def list_all_tbls(dli_client, db_name):
    try:
        tbls = dli_client.list_tables(db_name, with_detail=True)
    except DliException as e:
        print(e)
        return

    for tbl in tbls:
        print(tbl.name)

完整样例代码和依赖包说明请参考:Python SDK概述

描述表信息

您可以使用该接口获取表的元数据描述信息。示例代码如下:
def get_table_schema(dli_client, db_name, tbl_name):
 try:
        table_info = dli_client.get_table_schema(db_name, tbl_name)
        print(table_info)
    except DliException as e:
        print(e)
        return