You need to enable JavaScript to run this app.
导航
表创建
最近更新时间:2024.06.11 14:51:18首次发布时间:2022.02.24 10:16:17

1. 管理表

点击左侧的表管理,下拉展示当前租户下的 Schema 列表,支持关键词匹配智能搜索。选定对应的 Schema 后,用户可以看到当前 Schema 下的所有表名。
图片
同时可以看到创建时间,支持排序功能/表类型,支持筛选功能,点击漏斗下拉进行表类型筛选。同时,对于有分区的外表,刷新分区按钮将可见,用户可以对新增的外表进行刷新。
对于内表,会额外显示存储的预估大小,存储大小统计有一定延迟,更新延迟时间不超过 24 小时。
默认情况下数据行是收起状态,点击左边小三角可以展示更多信息, 用户可以看到 字段信息,数据预览,分区信息,DDL 信息 4 个标签 :

  • 点击字段信息,可以看到表的字段列的名称以及类型。
  • 表数据预览,可以显示表前 10 行的内容。

注意

需要注意的是目前数据预览网页界面暂时不支持含有 decimal/array/map 的字段,如果您的表中有这些字段,可以在查询分析中通过 select 语句查询,引擎会自动切换为 spark 引擎提供预览结果。

  • 对于分区表,还存在分区信息,分区信息会显示内表的分区。
  • DDL 信息:会显示建表的 DDL。

2. 创建内部表

点击新建表,输入已建好的数据库和表名,并填写字段信息,点击提交完成建表。

图片
创建内表的时候可以选择启用分层存储,若启动分层存储,则分区数据会在指定的 TTL 后自动删除,若以 DDL 形式创建内表,则可通过参数例如'ttl = 1'来配置过期时间,如果没有设置 ttl 参数则会继承库的 TTL 属性。

CREATE table IF NOT EXISTS las_test.ttl_test
(id int, name int, age string)
partitioned by(date string)
stored as parquet
TBLPROPERTIES('ttl' = '2')

库名列表里只会显示您目前有权限创建表的数据库,如果您目标的数据库不存在,您可以回到 Schema 管理页面,向对应的数据库申请建表权限。在建表时,可选的主键对表中每条记录进行唯一标识,勾选为主键的列将支持 UPSERT 能力。LAS 支持复合主键,可通过勾选多列设置复合主键。详细的情况可以参考 ACID 表的使用。
图片
如果已经有表的 DDL 信息,也可以使用 DDL 建表方式来新建表。
图片

3. 创建外部表

3.1 创建 TOS 外部表

  1. 创建 TOS 桶 访问 TOS 的 控制台 点击创建存储桶。

图片

  1. 对于子账户需要额外配置 TOS IAM 策略。

方法一: 配置 TOSFullAccess 策略到对应子账户 访问这个页面 https://console.volcengine.com/iam/policymanage/System/TOSFullAccess 添加对应的子账户。
方法二: 配置自定义精细化的策略 。https://console.volcengine.com/iam/policymanage#custom 新建一个策略如 bigdata_policy
策略如下

{"Statement":\[{"Effect":"Allow","Action":\["tos:List\*","tos:Head\*","tos:AbortMultipartUpload"\],"Resource":\["trn:tos:::bucket\_a"\]},{"Effect":"Allow","Action":\["tos:GetObject\*","tos:DeleteObject\*","tos:PutObject\*"\],"Resource":\["trn:tos:::bucket\_a/my\_tospath\*"\]}\]}

然后找到对应的策略 https://console.volcengine.com/iam/policymanage/Custom 添加对应的子账户即可。

  1. 准备文件:如果用户的业务系统已经和 TOS 对接,LAS 可以直接读取 TOS 中的数据。如果用户暂时没有 TOS 数据,可使用如下方式进行测试:在 TOS 桶里面找到要使用的文件路径,点击 上传文件 ,将 CSV/Parquet/ORC 文件上传到对应的路径即可。

图片

  1. 建立 TOS 外表 在数据管理页面,点击新建表,选择类型为 TOS 外表。 其中存储桶名称,请输入你账户下面的 TOS 存储桶地址,路径请输入文件的实际目录。

图片
输入已建好的数据库和表名,并填写字段名称和字段类型,点击提交即可完成建表。 注:如果创建的 TOS 外表为分区表,需要在建表后手动点击 “刷新分区”,以加载新的分区。

  1. 分区表和 TOS 目录的映射关系。

用户在上一步中填入的 TOS 目录,在 LAS 中会映射为一张表,表中的数据是 TOS 中的文件内容。如果需要使用分区表,需要在 TOS 目录下新建子目录。

  • 分区列对应表的 LOCATION 下的一个子目录,目录的命名规则为 分区列名=分区列值
  • 如果有多个分区列,则需要按照建表语句中指定的分区列顺序,依次创建多层子目录。

例如,以下是 TOS 中的目录结构:

TOS://bucket_a/table_a/year=2022/month=1/kv1.parquet
TOS://bucket_a/table_a/year=2022/month=2/kv2.parquet

在 LAS 中创建分区表时,表目录为 /table_a ,有两个分区列,分别为 year 和 month。

CREATE EXTERNAL TABLE table_a (
    name string,
    id bigint)
PARTITIONED BY (year string, month string)
stored as parquet
LOCATION 'tos://bucket_a/table_a';

3.2 创建 Kafka 外部表

用户可以通过 UI 创建 Kafka 外表,以及支持连接信息的新建和使用。
1. 前置条件

  • 用户拥有在 Schema 下创建表的权限。
  • 用户需要开通火山引擎的消息队列 Kafka 版,创建 Kafka 实例并进行 Topic 设置。
  • 暂时只支持解析 JSON 格式数据,请保证 Kafka 消息为标准 JSON。
  • 用户拥有 Kafka 实例的连接信息。
  • 子账户拥有 Kafka 策略,主账户可在 访问控制页面 为子账户赋予 Kafka 策略,如下图所示。

图片
2. 创建连接信息
创建 Kafka 连接信息入口:

  • 在数据管理的表管理页面点击创建表,在创建表页面中,选择创建连接信息。
  • 测试连接:用户点击测试连接后会检查连通性,当前测试仅包含网络联通性检查,用户名密码验证请以消息消费为准。
  • 保存并返回:用户点击保存并返回后同样会测试连接,连接失败则无法保存

图片
参数说明:

  • 实例 ID: 展示租户下所有 Kafka 实例的 id。
  • 安全组:展示 Kafka 实例所在 vpc 下的所有安全组。
  • Kafka URL: 可通过 消息队列 Kafka 版 进入实例详情查看。
  • 用户名:可通过 消息队列 Kafka 版 在实例详情选择用户管理创建并查看。

3. 创建 Kafka 外表

  • 在数据管理的表管理页面点击创建表,在创建表页面中,选择表类型为外表,选择数据源类型为 Kafka。
  • 选择连接信息:每一条连接信息都对应一个 Kafka 实例,通过下拉框选择,可以通过查看连接信息查看连接信息的详细信息。没有连接信息需要进行创建,创建详情请查看创建连接信息页面。

Kafka Topic: 用户选择的连接信息所对应的 Kafka 实例下创建的 Topic。选择 Topic 后,会在数据预览框展示最新一条消息以及 LAS 推断出的表字段名称以及数据类型。用户可以对数据类型进行修改

  • 点击提交后会显示创建结果。

图片

4. 删除表

当操作者权限是 Admin 或者具有表删除权限时,删除按钮将可见,点击删除表按钮,会二次弹框进行确认。删除内表时,所有表的元数据和存储内容会被一并删除。删除外表时,如果外表的存储是在 TOS 上,则表的元数据信息会被删除,TOS 上的原始文件仍会保留。用户可以选择重新创建外表使得 TOS 数据重新可查。

5. 刷新分区

注:使用刷新分区的前置条件:该表为外部表,且为分区表。 以下两种情况需要更新分区表的分区:

  1. 初始化分区:在创建外表后,分区表的分区列中更没有具体的分区,此时无法读取分区表中的数据,需要通过刷新分区加载分区。
  2. 增加分区:当原始文件的分区增加后,为使 LAS 中可以读取新的分区中的数据,需要通过刷新分区加载新的分区。

前往 数据管理-表管理 页面,点击表的 刷新分区,即可根据原始数据的目录结构,更新所有新加入的分区。
图片

6. 常见问题 FAQ

Q:删除外表时,TOS 的原始文件会被删除吗?
A:不会被删除。 删除外表时,元数据本身会被删除,外表将不可见,TOS 中您上传的文件仍然会被保留,您仍然可以通过创建表的页面或者指定 DDL 来新建外表。
Q 创建内表DDL中Precombine Key语法是什么含义?
A: Precombine Key用来指定主键表的排序字段,一般为业务时间戳。由于主键表的去重逻辑是在读取侧执行的,写入时不会对重复主键进行去重,因此在读取时如果碰到多个相同主键的数据,则需要一个排序字段对这些重复主键进行排序,最后取该字段值最大的一条作为排序结果。创建主键表时建议指定该字段,否则可能出现查询不符合预期的情况。