最近更新时间:2023.10.11 17:34:19
首次发布时间:2022.02.24 10:16:17
点击左侧的表管理,下拉展示当前租户下的 Schema 列表,支持关键词匹配智能搜索。选定对应的 Schema 后,用户可以看到当前 Schema 下的所有表名。
同时可以看到创建时间,支持排序功能/表类型,支持筛选功能,点击漏斗下拉进行表类型筛选。同时,对于有分区的外表,刷新分区按钮将可见,用户可以对新增的外表进行刷新。
对于内表,会额外显示存储的预估大小,存储大小统计有一定延迟,更新延迟时间不超过 24 小时。
默认情况下数据行是收起状态,点击左边小三角可以展示更多信息, 用户可以看到 字段信息,数据预览,分区信息,DDL 信息 4 个标签 :
点击字段信息,可以看到表的字段列的名称以及类型。
表数据预览,可以显示表前 10 行的内容。
需要注意的是目前数据预览网页界面暂时不支持含有 decimal/array/map 的字段,如果您的表中有这些字段,可以在查询分析中通过 select 语句查询,引擎会自动切换为 spark 引擎提供预览结果。
对于分区表,还存在分区信息,分区信息会显示内表的分区。
DDL 信息:会显示建表的 DDL。
点击新建表,输入已建好的数据库和表名,并填写字段信息,点击提交完成建表。
创建内表的时候可以选择启用分层存储,若启动分层存储,则分区数据会在指定的 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 建表方式来新建表。
方法一: 配置 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 添加对应的子账户即可。
输入已建好的数据库和表名,并填写字段名称和字段类型,点击提交即可完成建表。 注:如果创建的 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';
用户可以通过 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 推断出的表字段名称以及数据类型。用户可以对数据类型进行修改。
当操作者权限是 Admin 或者具有表删除权限时,删除按钮将可见,点击删除表按钮,会二次弹框进行确认。删除内表时,所有表的元数据和存储内容会被一并删除。删除外表时,如果外表的存储是在 TOS 上,则表的元数据信息会被删除,TOS 上的原始文件仍会保留。用户可以选择重新创建外表使得 TOS 数据重新可查。
注:使用刷新分区的前置条件:该表为外部表,且为分区表。 以下两种情况需要更新分区表的分区:
初始化分区:在创建外表后,分区表的分区列中更没有具体的分区,此时无法读取分区表中的数据,需要通过刷新分区加载分区。
增加分区:当原始文件的分区增加后,为使 LAS 中可以读取新的分区中的数据,需要通过刷新分区加载新的分区。
前往 数据管理-表管理 页面,点击表的 刷新分区,即可根据原始数据的目录结构,更新所有新加入的分区。
Q:删除外表时,TOS 的原始文件会被删除吗?
不会被删除。 删除外表时,元数据本身会被删除,外表将不可见,TOS 中您上传的文件仍然会被保留,您仍然可以通过创建表的页面或者指定 DDL 来新建外表。