如何在MaxCompute中创建表 您所在的位置:网站首页 clickhouse建表语句 如何在MaxCompute中创建表

如何在MaxCompute中创建表

2023-03-24 23:16| 来源: 网络整理| 查看: 265

表是MaxCompute的数据存储单元。您需要基于表进行数据处理。本文为您介绍如何创建表。

前提条件 请确认您已满足如下条件: 已登录MaxCompute客户端。

更多登录MaxCompute客户端操作,请参见登录MaxCompute客户端。

已准备好保存了待导入数据的CSV或TXT文件。 本文提供的数据文件样例如下: 创建非分区表的数据文件:banking.txt。 创建分区表的数据文件:banking_nocreditcard.csv、banking_uncreditcard.csv和banking_yescreditcard.csv。 如果是RAM用户创建表,请确认阿里云账号已经授予RAM用户创建表的权限(CreateTable)。

更多查看权限操作,请参见查看用户的权限。

更多授权操作,请参见授权。

注意事项

新创建表的列数据类型务必与数据文件的各列数据类型保持一致,如果二者不一致,会导致后续导入数据操作执行失败。

步骤一:设计表

您需要根据待导入的数据内容和最终需要生成的结果数据,确定需要创建的表类型、结构及各列的数据类型。

本文中提供的示例数据内容如下,展示的是银行贷款购房人员的数据。

--待创建非分区表的数据。 44,blue-collar,married,basic.4y,unknown,yes,no,cellular,aug,thu,210,1,999,0,nonexistent,1.4,93.444,-36.1,4.963,5228.1,0 53,technician,married,unknown,no,no,no,cellular,nov,fri,138,1,999,0,nonexistent,-0.1,93.2,-42,4.021,5195.8,0 28,management,single,university.degree,no,yes,no,cellular,jun,thu,339,3,6,2,success,-1.7,94.055,-39.8,0.729,4991.6,1 --待创建分区表的数据。 53,technician,married,unknown,no,no,cellular,nov,fri,138,1,999,0,nonexistent,-0.1,93.2,-42,4.021,5195.8,0 28,management,single,university.degree,yes,no,cellular,jun,thu,339,3,6,2,success,-1.7,94.055,-39.8,0.729,4991.6,1 39,services,married,high.school,no,no,cellular,apr,fri,185,2,999,0,nonexistent,-1.8,93.075,-47.1,1.405,5099.1,0

您可以识别到数据列数、每列数据的数据类型,同时可以了解各列数据对应的含义,为每列数据定义一个列名称。假设基于示例数据,识别到的信息如下。

类型 说明 表的列数 从示例数据中识别表列数信息如下: 创建非分区表的示例数据包含21列,新创建表的列数可设定为21列。 说明 如果表的列数超过示例数据的列数,不足的列将填充NULL。如果表的列数少于示例数据的列数,多余的数据将被丢弃。 创建分区表的示例数据包含20列,新创建表的列数可设定为21列,其中一列为分区列,您需要在创建表时定义分区。 表的列字段 从示例数据中识别表列字段信息如下: 非分区表的列字段包含: age:年龄 job:工作类型 marital:婚否 education:教育程度 credit:是否有信用卡 housing:是否有房贷 loan:是否有贷款 contact:联系方式 month:月份 day_of_week:星期几 duration:持续时间 campaign:本次活动联系的次数 pdays:与上一次联系的时间间隔 previous:之前与客户联系的次数 poutcome:之前市场活动的结果 emp_var_rate:就业变化速率 cons_price_idx:消费者物价指数 cons_conf_idx:消费者信心指数 euribor3m:欧元存款利率 nr_employed:职工人数 fixed_deposit:是否有定期存款 分区表的列字段包含: age:年龄 job:工作类型 marital:婚否 education:教育程度 housing:是否有房贷 loan:是否有贷款 contact:联系方式 month:月份 day_of_week:星期几 duration:持续时间 campaign:本次活动联系的次数 pdays:与上一次联系的时间间隔 previous:之前与客户联系的次数 poutcome:之前市场活动的结果 emp_var_rate:就业变化速率 cons_price_idx:消费者物价指数 cons_conf_idx:消费者信心指数 euribor3m:欧元存款利率 nr_employed:职工人数 fixed_deposit:是否有定期存款 credit:是否有信用卡。该列为分区列。 数据类型 从示例数据中识别表列字段的数据类型信息如下: age:BIGINT job:STRING marital:STRING education:STRING credit:STRING housing:STRING loan:STRING contact:STRING month:STRING day_of_week:STRING duration:STRING campaign:BIGINT pdays:DOUBLE previous:DOUBLE poutcome:STRING emp_var_rate:DOUBLE cons_price_idx:DOUBLE cons_conf_idx:DOUBLE euribor3m:DOUBLE nr_employed:DOUBLE fixed_deposit:BIGINT 步骤二:创建表

基于示例数据,创建非分区表bank_data和分区表bank_data_pt,用于存储业务数据;创建非分区表result_table1和result_table2,用于存储结果数据。更多表及分区的操作信息,请参见表操作和分区和列操作。创建表的操作流程如下:

可选:在MaxCompute客户端,执行如下命令切换至目标MaxCompute项目。如果您启动MaxCompute客户端后已在目标MaxCmpute项目中,请忽略该步骤。use doc_test_dev;切换成功显示如下。odps@ doc_test_dev> 在MaxCompute客户端,创建表bank_data、bank_data_pt、result_table1和result_table2。更多创建表语法,请参见创建表。 创建非分区表bank_data,命令示例如下。create table if not exists bank_data ( age BIGINT comment '年龄', job STRING comment '工作类型', marital STRING comment '婚否', education STRING comment '教育程度', credit STRING comment '是否有信用卡', housing STRING comment '是否有房贷', loan STRING comment '是否有贷款', contact STRING comment '联系方式', month STRING comment '月份', day_of_week STRING comment '星期几', duration STRING comment '持续时间', campaign BIGINT comment '本次活动联系的次数', pdays DOUBLE comment '与上一次联系的时间间隔', previous DOUBLE comment '之前与客户联系的次数', poutcome STRING comment '之前市场活动的结果', emp_var_rate DOUBLE comment '就业变化速率', cons_price_idx DOUBLE comment '消费者物价指数', cons_conf_idx DOUBLE comment '消费者信心指数', euribor3m DOUBLE comment '欧元存款利率', nr_employed DOUBLE comment '职工人数', fixed_deposit BIGINT comment '是否有定期存款' ); 创建分区表bank_data_pt,并添加分区,命令示例如下。create table if not exists bank_data_pt ( age BIGINT comment '年龄', job STRING comment '工作类型', marital STRING comment '婚否', education STRING comment '教育程度', housing STRING comment '是否有房贷', loan STRING comment '是否有贷款', contact STRING comment '联系方式', month STRING comment '月份', day_of_week STRING comment '星期几', duration STRING comment '持续时间', campaign BIGINT comment '本次活动联系的次数', pdays DOUBLE comment '与上一次联系的时间间隔', previous DOUBLE comment '之前与客户联系的次数', poutcome STRING comment '之前市场活动的结果', emp_var_rate DOUBLE comment '就业变化速率', cons_price_idx DOUBLE comment '消费者物价指数', cons_conf_idx DOUBLE comment '消费者信心指数', euribor3m DOUBLE comment '欧元存款利率', nr_employed DOUBLE comment '职工人数', fixed_deposit BIGINT comment '是否有定期存款' )partitioned by (credit STRING comment '是否有信用卡'); alter table bank_data_pt add if not exists partition (credit='yes') partition (credit='no') partition (credit='unknown'); 创建非分区表result_table1,命令示例如下。create table if not exists result_table1 ( education STRING comment '教育程度', num BIGINT comment '人数' ); 创建非分区表result_table2,命令示例如下。create table if not exists result_table2 ( education STRING comment '教育程度', num BIGINT comment '人数', credit STRING comment '是否有信用卡' ); 步骤三:确认创建结果

创建表后,您需要确认表是否已创建成功,以及表的结构是否正确无误。操作流程如下:

在MaxCompute客户端,执行如下命令确认表已在MaxCompute项目中。show tables;创建成功的表会显示在命令返回结果中,返回结果示例如下。ALIYUN$****:bank_data ALIYUN$****:bank_data_pt ALIYUN$****:result_table1 ALIYUN$****:result_table2 在MaxCompute客户端,执行如下命令确认表的结构正确无误。--查看bank_data表结构。 desc bank_data; --查看bank_data_pt表结构。 desc bank_data_pt; --查看bank_data_pt的分区。 show partitions bank_data_pt; --查看result_table1表结构。 desc result_table1; --查看result_table2表结构。 desc result_table2;以bank_data_pt为例,返回结果如下。desc bank_data_pt; --返回结果。 +------------------------------------------------------------------------------------+ | Owner: ALIYUN$**** | Project: doc_test_dev | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2021-05-17 14:02:21 | | LastDDLTime: 2021-05-17 14:02:21 | | LastModifiedTime: 2021-05-17 14:02:21 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | Comment | +------------------------------------------------------------------------------------+ | age | bigint | | 年龄 | | job | string | | 工作类型 | | marital | string | | 婚否 | | education | string | | 教育程度 | | housing | string | | 是否有房贷 | | loan | string | | 是否有贷款 | | contact | string | | 联系方式 | | month | string | | 月份 | | day_of_week | string | | 星期几 | | duration | string | | 持续时间 | | campaign | bigint | | 本次活动联系的次数 | | pdays | double | | 与上一次联系的时间间隔 | | previous | double | | 之前与客户联系的次数 | | poutcome | string | | 之前市场活动的结果 | | emp_var_rate | double | | 就业变化速率 | | cons_price_idx | double | | 消费者物价指数 | | cons_conf_idx | double | | 消费者信心指数 | | euribor3m | double | | 欧元存款利率 | | nr_employed | double | | 职工人数 | | fixed_deposit | bigint | | 是否有定期存款 | +------------------------------------------------------------------------------------+ | Partition Columns: | +------------------------------------------------------------------------------------+ | credit | string | 是否有信用卡 | +------------------------------------------------------------------------------------+show partitions bank_data_pt; --返回结果。 credit=no credit=unknown credit=yes 后续步骤

创建表并确认后,即可将数据文件中的数据导入表中,请参见导入数据。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有