当前位置:Gxlcms > 数据库问题 > Inceptor常用SQL

Inceptor常用SQL

时间:2021-07-01 10:21:17 帮助过:4人阅读

、创建数据库 建一个数据库exchange_platform。 DROP DATABASE IF EXISTS exchange_platform CASCADE; CREATE DATABASE IF NOT EXISTS exchange_platform; 2、删除数据库 DROP DATABASE IF EXISTS exchange_platform; 3、修改 DBPROPERTIES ALTER DATABASE exchange_platform SET DBPROPERTIES (date= 2015-12); 4、修改数据库owner ALTER DATABASE exchange_platform SET OWNER USER alice; 数据库owner可以是Inceptor的用户也可以是角色。 5、创建表 5.1、通过定义列建表 -- 将表建在当前数据库中: DROP TABLE IF EXISTS user_info_tab; CREATE TABLE user_info_tab (   name STRING,   acc_num STRING,   password STRING,   citizen_id STRING,   bank_acc STRING,   reg_date DATE,   acc_level STRING ); -- 将表建在指定数据库中: DROP TABLE IF EXISTS exchange_platform.user_info; CREATE TABLE exchange_platform.user_info (   name STRING,   acc_num STRING,   password STRING,   citizen_id STRING,   bank_acc STRING,   reg_date DATE,   acc_level STRING ); -- 建HDFS外表: DROP TABLE IF EXISTS user_info_tab; CREATE EXTERNAL TABLE user_info_tab (   name STRING,   acc_num STRING,   password STRING,   citizen_id STRING,   bank_acc STRING,   reg_date DATE,   acc_level STRING ); LOAD DATA LOCAL INPATH /LOCALWORKSPACE/manual-ut/manual_data/manual_crud_tmp/user_info.txt OVERWRITE INTO TABLE user_info_tab; 5.2、通过拷贝表定义建表 DROP TABLE IF EXISTS exchange_platform.user_info; CREATE TABLE IF NOT EXISTS exchange_platform.user_info LIKE user_info; 5.3、CTAS --用user_info表做为例子,user_info中含有帐户密码,身份证号码和银行帐户等会影响帐户安全的信息,现在用 CTAS 建一张不包含这些信息的表。 DROP TABLE IF EXISTS nonsecure_user_info ; CREATE TABLE nonsecure_user_info AS SELECT name, acc_num, reg_date, acc_level FROM user_info; 6、删除表 DROP TABLE [IF EXISTS] <table_name>; 7、修改表 7.1 重命名 ALTER TABLE <table_name> RENAME TO <new_table_name>; 7.2 修改或添加TBLPROPERTIES -- 我们可以用这个语句给表添加和修改自定义的表属性。 ALTER TABLE <table_name> SET TBLPROPERTIES (<property_name> = <property_value> ... ); 7.3 修改或添加SERDEPROPERTIES ALTER TABLE <table_name> SET SERDEPROPERTIES (<property_name> = <property_value> ... ); 7.4 修改外表目录 ALTER TABLE <table_name> SET LOCATION <new_location>; -- 将外表指向的HDFS目录改为 <new_location>。注意,执行该操作的用户必须是 <new_location> 的owner 8、清空表 -- TRUNCATE TABLE 清空表或者分区中的数据,但不删除表或分区的元数据。这个操作只能用于托管表,不能用于外表。 8.1 清空表中数据 TRUNCATE TABLE user_info; 8.2 清空指定表中指定分区的数据 TRUNCATE TABLE user_info_part PARTITION (acc_level=A); 9、增加替换列 9.1 增加列 -- 可以将新的列加入表中,位置在所有列之后,分区之前。 DROP TABLE IF EXISTS test_change; CREATE TABLE test_change (a INT, b INT, c INT); -- 在表test_change中添加一个新列d,类型为INT ALTER TABLE test_change ADD COLUMNS(d INT); 9.2 替换列 DROP TABLE IF EXISTS test_change; CREATE TABLE test_change (a INT, b INT, c INT); -- 将test_change中的列由(a INT, b INT, c INT)替换为(a int, b int)起到将列c删除的效果 ALTER TABLE test_change REPLACE COLUMNS (a INT, b INT); 10、视图 10.1创建视图 DROP VIEW IF EXISTS non_secure_info; CREATE VIEW non_secure_info AS SELECT name, reg_date, acc_level FROM user_info; -- 注意:不支持CREATE VIEW AS SELECT … UNION SELECT 10.2 删除视图 DROP VIEW [IF EXISTS] <view_name>; 11、导入数据 -- 将本地数据导入一张表 LOAD DATA LOCAL INPATH /LOCALWORKSPACE/manualut/manual_data/manual_crud_tmp/user_info_table.txt INTO TABLE user_info2; -- 将本地数据导入一张表下的分区 LOAD DATA LOCAL INPATH /LOCALWORKSPACE/manualut/manual_data/manual_crud_tmp/user_info_table_A.txt INTO TABLE partition_user_info PARTITION (acc_level = A); -- 将HDFS上的数据导入一张表 LOAD DATA INPATH /manual_crud_hdfs/user_info3/test INTO TABLE user_info2; 12、向表中插入数据 -- 一些常见的DML如 UPDATE, DELETE和 INSERT … VALUES只能对ORC事务表、Hyperbase内存表、ES 表使用。 -- 而INSERT … SELECT、SELECT则可以作用于任意类型的表 12.1 向表中插入数据并覆盖原数据 INSERT OVERWRITE TABLE user_info2 SELECT * FROM user_info; 12.2 多次插入 -- 使用一个数据源可以将多个查询结果插入不同表中。语法 FROM user_info  INSERT INTO TABLE user_name SELECT name n  INSERT OVERWRITE TABLE user_name_num SELECT name, acc_num ac   INSERT INTO TABLE user_name_level SELECT name, acc_level; 13、向文件系统中插入数据 -- 写入文件系统使用INSERT语句,但是不同于将数据INSERT进表中有INTO和OVERWRITE两种选项,将数据写入文件系统必须INSERT OVERWRITE。 13.1 将user_info中的内容写入本地某目录下。 INSERT OVERWRITE LOCAL DIRECTORY /LOCALWORKSPACE/manual-ut/manual_data/user_info2/ ROW FORMAT DELIMITED FIELDS TERMINATED BY| SELECT * FROM user_info; 13.2 将user_info中的内容写入HDFS上的目录下 INSERT OVERWRITE DIRECTORY /manual_crud_hdfs/user_info2/ ROW FORMAT DELIMITED FIELDS TERMINATED BY| SELECT * FROM user_info; 13.3 多插入 --在Inceptor中还可以用一个SQL语句将从一个数据源中检索出来的多个结果插入不同文件和表中。 FROM user_info INSERT OVERWRITE LOCAL DIRECTORY /LOCALWORKSPACE/manual-ut/manual_data/user_info4/SELECT name a INSERT OVERWRITE DIRECTORY /manual_crud_hdfs/user_info5/SELECT password b INSERT INTO TABLE new_user SELECT name c INSERT OVERWRITE TABLE user_name SELECT name d; 14、TEXT表 DROP TABLE IF EXISTS employee; CREATE EXTERNAL TABLE employee (id INT, name STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY , LOCATION /manual_crud_tmp/employee; SELECT * FROM employee; 15、CSV表 DROP TABLE IF EXISTS csv_table; CREATE EXTERNAL TABLE csv_table (   col1 STRING,   col2 STRING,   col3 STRING ) STORED AS CSVFILE; LOAD DATA LOCAL INPATH /LOCALWORKSPACE/manual-ut/manual_data/manual_crud_tmp/csv1.txt OVERWRITE INTO TABLE csv_table; 16、ORC表 SET transaction.type=inceptor; -- 创建非分区ORC表。 DROP TABLE IF EXISTS ta; CREATE TABLE ta (name STRING, age INT) CLUSTERED BY (age) INTO 2 BUCKETS STORED AS ORC TBLPROPERTIES ("transactional"="true"); -- 创建非分区ORC表。 DROP TABLE IF EXISTS tg; CREATE TABLE tg (name STRING, gpa DOUBLE) CLUSTERED BY (name) INTO 4 BUCKETS STORED AS ORC TBLPROPERTIES ("transactional"="true"); -- 创建单值分区ORC表。 DROP TABLE IF EXISTS test; CREATE TABLE test (a INT, b STRING, c DOUBLE) PARTITIONED BY (date STRING) CLUSTERED BY (c) INTO 8 BUCKETS STORED AS ORC TBLPROPERTIES ("transactional"="true"); -- 创建范围分区ORC表。 DROP TABLE IF EXISTS t5; CREATE TABLE t5(id INT, value INT) PARTITIONED BY RANGE(amount INT) ( PARTITION less1 VALUES LESS THAN (1), PARTITION less10 VALUES LESS THAN (10), PARTITION less100 VALUES LESS THAN (100) ) CLUSTERED BY (id) INTO 5 BUCKETS STORED AS ORC TBLPROPERTIES ("transactional"="true"); -- 桶的个数对事务处理的性能有关键性的影响,我们建议您设置合理的个数, -- 一般是CPU个数的倍数,并且每个桶平均的大小控制不要超过200MB或者一百万行记录。 17、Holodesk表 --Holodesk普通建表 DROP TABLE IF EXISTS holodeskEmployee; CREATE TABLE holodeskEmployee(   ID INT,   Region STRING,   Sex VARCHAR(4),   Department STRING,   Salary DECIMAL ) STORED AS HOLODESK;

Inceptor常用SQL

标签:nsa   str   varchar   min   char   事务   write   事务处理   file   

人气教程排行