EMR Serverless Presto 语法完全兼容开源 Presto 语法,详细语法规则请参考 Presto 语法说明。本文主要对 Presto 的一些基本操作进行介绍和演示。
-- 未指定las catalog, 默认使用hive catalog CREATE SCHEMA IF NOT EXISTS SERVERLESS_PRESTO_SCHEMA; -- 指定自定义las catalog CREATE SCHEMA IF NOT EXISTS las_catalog_test.SERVERLESS_PRESTO_SCHEMA; -- 指定TOS路径:Bucket已创建&并且具有该 Bucket 的读写权限 CREATE SCHEMA IF NOT EXISTS SERVERLESS_PRESTO_SCHEMA WITH ( LOCATION='tos://${your-presto-bucket}/serverless/presto' ); -- 删除数据库 DROP SCHEMA SERVERLESS_PRESTO_SCHEMA;
-- 创建表 CREATE TABLE IF NOT EXISTS SERVERLESS_PRESTO_SCHEMA.SP_TABLE ( ID BIGINT, NAME VARCHAR, AGE INT ); -- 创建表并设置存储路径和存储格式 -- FORMAT 默认为 ORC,可以按需设置为 Parquet,TEXTFILE 等文件格式 CREATE TABLE IF NOT EXISTS SERVERLESS_PRESTO_SCHEMA.SP_TABLE ( ID BIGINT, NAME VARCHAR, AGE INT ) COMMENT 'EMR SERVERLESS TABLE' WITH ( EXTERNAL_LOCATION='tos://${your-presto-bucket}/serverless/presto/', FORMAT='ORC' ); -- 查看表信息 DESC SERVERLESS_PRESTO_SCHEMA.SP_TABLE; -- 查询数据 SELECT * FROM SERVERLESS_PRESTO_SCHEMA.SP_TABLE; -- 删除表 DROP TABLE SERVERLESS_PRESTO_SCHEMA.SP_TABLE;
-- presto 使用UDF:latalog.db.udfname select hive.dbname.udfname('aaabbB');
-- 默认Hive catalog SELECT * FROM test_iceberg_db.test_tb limit 10; -- 自定义catalog SELECT * FROM test_catalog.test_iceberg_db.test_tb limit 10;
-- 默认Hive catalog SELECT * FROM test_iceberg_db.test_tb limit 10; -- 自定义catalog SELECT * FROM test_catalog.test_iceberg_db.test_tb limit 10;
-- 默认Hive catalog SELECT * FROM test_iceberg_db.test_tb limit 10; -- 自定义catalog SELECT * FROM test_catalog.test_iceberg_db.test_tb limit 10;
-- 默认Hive catalog SELECT * FROM test_iceberg_db.test_tb limit 10; -- 自定义catalog SELECT * FROM test_catalog.test_iceberg_db.test_tb limit 10;