星环TranswarpInceptor通过waterdrop添加表,视图,函数和存储过程

本文档详细介绍了如何在Inceptor数据库中进行表、视图、函数及存储过程的创建与管理。包括使用SQL语句创建表和视图的语法,例如CREATE TABLE LIKE用于复制表结构,CREATE VIEW AS SELECT用于创建视图。此外,还提到了函数和存储过程的创建,并提供了连接Inceptorserver的配置信息以及jar包驱动的申请流程。

TDH访问地址进入后 http://10.113.11.35:8180/ 用户名 admin/admin,点击Inceptor1后点击右上角的更多操作可以下载waterdrop和jdbc驱动

waterdrop连接Inceptor server的地址就是tdh的ip地址 10.113.11.33 使用ldap认证方式,即tdh登录时用户名admin密码admin

 

连接前需要配置jar包驱动,申请licence的入口:https://snowflake.transwarp.io/login,如果使用无线网时使用无线网卡的mac地址申请

字典表在system库的视图中 columns_v,functions_v,procedures_v,tables_v,views_v

使用sql语句添加表,视图,函数,存储过程

创建表:

语法:

CREATE TABLE LIKE 通过拷贝一张已存在表或视图的定义建表,但不拷贝已存在表的数据。
语法
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] ①
[<database>.]<table_name> ②
LIKE <existing_table_or_view_name>
[LOCATION '<hdfs_path>'] ③
40 | 3. Inceptor SQL手册
① TEMPORARY 为临时表选项,EXTERNAL 为外表选项。
② 加上 <database_name>. 则将表建在指定的数据库中。
③ 指定表在HDFS上的目录。
例 13. 通过拷贝表定义建表
DROP TABLE IF EXISTS exchange_platform.user_info;
CREATE TABLE IF NOT EXISTS exchange_platform.user_info
LIKE user_info;

实际操作:CREATE TABLE tabletest2 LIKE test2

创建视图:

语法
CREATE VIEW [IF NOT EXISTS] <view_name> [(<column_name>,<column_name>, ...)] ①
AS SELECT <select_statement>; ②
① 在创建视图时可以选择定义列名,但是不能定义列类型,列类型由 AS SELECT <select_statement> 的查
询结果决定。
② CREATE VIEW 的语法和 CTAS 非常相像。区别在于VIEW是非实体化的,CREATE VIEW 给查询创建
一个快捷方式,而 CTAS 将查询结果写入磁盘中。
例 17. 创建视图
DROP VIEW IF EXISTS non_secure_info;
CREATE VIEW non_secure_info AS SELECT name, reg_date, acc_level FROM user_info;

实际操作:CREATE VIEW test2 AS SELECT database_id, owner_name, owner_type FROM test1;

函数:

CREATE function get_lable_count(lable_name string)
 return bigint
 is
 declare
 v_abc int;
 begin
 --@into语句
 select count(1) as num into  v_abc  from test1  where database_name ='test';
 return  v_abc;
 end get_lable_count;

存储过程:

CREATE procedure best_refund_user(outcde OUT int)
is
begin
  RETURN;
end best_refund_user;

<think>好的,我需要回答用户关于如何在Waterdrop中执行存储过程的问题。首先,我需要查阅用户提供的引用资料,特别是引用[3]引用[4],因为这两个引用提到了Waterdrop存储过程相关的信息。 根据引用[3],用户需要将Oracle的JDBC驱动ojdbc8.jar放在lib目录下,这样Waterdrop就能自动发现驱动。这说明在配置数据库连接时,驱动是否正确加载是关键。接下来,引用[4]提到了TDH数据库批量生成存储过程的脚本,其中涉及生成存储过程的算法模板语句。这可能意味着在ETL流程中,存储过程的调用可能需要通过生成相应的SQL脚本来执行。 用户的问题是如何在Waterdrop中调用或执行存储过程。通常,执行存储过程可以通过JDBC的CallableStatement来实现,但Waterdrop可能使用配置文件来定义作业步骤。我需要结合这些信息,给出具体的步骤。 首先,确保数据库驱动已正确配置,如引用[3]所述。然后,在Waterdrop的配置文件中,可能需要使用SQL插件来执行CALL语句。例如,使用jdbc输入或输出插件,在SQL语句中调用存储过程。此外,引用[4]提到的生成存储过程脚本的路径,可能涉及将生成的SQL文件通过Waterdrop执行。 需要注意参数传递的问题,特别是OUT参数。引用[1]提到存储过程可以带有out类型参数,因此在调用时需要处理这些参数。可能需要在SQL语句中使用占位符,并在配置中指定参数类型。 另外,调试存储过程可能比较困难,如引用[2]所述,所以建议先在数据库客户端测试存储过程,再集成到Waterdrop作业中。 总结步骤:配置驱动 -> 编写调用存储过程的SQL语句 -> 在Waterdrop配置文件中使用jdbc插件执行 -> 处理参数结果。需要具体示例帮助用户理解,比如给出一个调用存储过程的配置片段。</think>在Waterdrop中调用或执行数据库存储过程,可通过以下步骤实现: ### 一、前置条件 1. **驱动配置** 根据引用[3],需确保对应数据库驱动(如Oracle的`ojdbc8.jar`)已放置在Waterdrop的`lib`目录下,以支持存储过程调用。 2. **存储过程权限** 确认数据库账号拥有执行存储过程的权限。 --- ### 二、调用存储过程的实现方式 #### 方式1:通过SQL插件直接调用 在Waterdrop配置文件中使用`jdbc`插件执行`CALL`语句。 示例配置(以Oracle为例): ```hocon jdbc { driver = "oracle.jdbc.driver.OracleDriver" url = "jdbc:oracle:thin:@//host:port/service_name" username = "your_username" password = "your_password" query = "CALL your_procedure_name(?, ?)" # 支持参数占位符 parameters = ["input_param_value", "output_param_value"] # 输入/输出参数赋值 # 若需处理OUT参数,需结合存储过程逻辑定义参数类型 } ``` #### 方式2:批量生成调用脚本 根据引用[4],可通过模板生成存储过程调用脚本,例如: 1. 在`D:\ETL\model\TDH`路径下定义存储过程调用模板; 2. 使用Python脚本(`D:\ETL\genproc`路径)批量生成具体SQL文件; 3. 通过Waterdrop的`file`或`sql`插件读取并执行生成的脚本。 --- ### 三、参数处理注意事项 1. **输入参数** 直接在`CALL`语句中使用`?`占位符,并在`parameters`中按顺序赋值。 2. **输出参数** 需在SQL中明确参数类型,例如Oracle中使用`{call proc_name(?,?)}`格式,并通过`CallableStatement`处理返回结果。 --- ### 四、调试建议 根据引用[2],建议先在PL/SQL Developer等工具中调试存储过程逻辑,确认无误后再集成到Waterdrop作业中,以降低调试复杂度。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值