AWS redshift->hdb pg(Greenplum), plpython, pljava UDF 以及upload library

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: postgresql greenplum python udf

背景
AWS redshift UDF 支持sql, plpython编写。

阿里云hdb pg UDF支持plpgsql, sql, plpython, pljava编写。

aws redshift通过create library导入外部LIB。

阿里云hdb pg同样通过CREATE LIBRARY导入外部LIB。

redshift 创建UDF函数
https://docs.aws.amazon.com/redshift/latest/dg/udf-creating-a-scalar-udf.html

CREATE [ OR REPLACE ] FUNCTION f_function_name
( { [py_arg_name py_arg_data_type |
sql_arg_data_type } [ , ... ] ] )
RETURNS data_type
{ VOLATILE | STABLE | IMMUTABLE }
AS

$$ { python_program | SELECT_clause } $$

LANGUAGE { plpythonu | sql }

create function f_py_greater (a float, b float)
returns float
stable
as

$$ if a > b: return a return b $$

language plpythonu;
redshift 导入python lib
CREATE [ OR REPLACE ] LIBRARY library_name LANGUAGE plpythonu
FROM
{ 'https://file_url'
| 's3://bucketname/file_name'
authorization
[ REGION [AS] 'aws_region']
}
阿里云hdb pg创建UDF函数
https://help.aliyun.com/document_detail/50594.html

create extension pljava;

create library example language java from 'oss://oss-cn-hangzhou.aliyuncs.com filepath=analytics.jar id=xxx key=yyy bucket=zzz';

create table temp (a varchar) distributed randomly;
insert into temp values ('my string');
create or replace function java_substring(varchar, int, int) returns varchar as 'Test.substring' language java;
select java_substring(a, 1, 5) from temp;
阿里云hdb pg导入java lib
https://help.aliyun.com/document_detail/50595.html

CREATE LIBRARY library_name LANGUAGE [JAVA] FROM oss_location OWNER ownername
CREATE LIBRARY library_name LANGUAGE [JAVA] VALUES file_content_hex OWNER ownername
DROP LIBRARY library_name
create library example language java from 'oss://oss-cn-hangzhou.aliyuncs.com filepath=analytics.jar id=xxx key=yyy bucket=zzz';
参考
https://help.aliyun.com/document_detail/50595.html

https://help.aliyun.com/document_detail/50594.html

https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_LIBRARY.html
转自阿里云德哥

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
存储 SQL 分布式计算
MaxCompute(原名ODPS,全称Open Data Processing Service)
MaxCompute(原名ODPS,全称Open Data Processing Service)是阿里云开发的一种云原生数据处理和分析服务。它提供了强大的数据计算和处理能力,支持海量数据的存储、计算、分析和挖掘,并且具有高可靠、高性能、高可扩展、高安全等优势,适用于各种数据处理和分析场景。
1195 0
|
Oracle 关系型数据库 数据库
MogDB/openGauss 生态工具-MTK(Migration ToolKit) 数据库迁移
MogDB/openGauss 生态工具-MTK(Migration ToolKit) 数据库迁移
352 0
MogDB/openGauss 生态工具-MTK(Migration ToolKit) 数据库迁移
|
分布式数据库 Hbase
《JanusGraph —Distributed graph database with HBase》电子版地址
JanusGraph —Distributed graph database with HBase
84 0
《JanusGraph —Distributed graph database with HBase》电子版地址
|
存储 分布式计算 关系型数据库
基于MinIO/Deleta Lake/Dremio和Superset或Metabase搭建简单的数据湖
基于MinIO/Deleta Lake/Dremio和Superset或Metabase搭建简单的数据湖
1629 0
基于MinIO/Deleta Lake/Dremio和Superset或Metabase搭建简单的数据湖
|
Oracle Ubuntu 关系型数据库
Apache Doris Oracle ODBC外表使用指南
以下是Apache Doris Oracle ODBC外表使用指南。
463 0
|
SQL MySQL 关系型数据库
使用Data Lake Analytics从OSS清洗数据到AnalyticDB for MySQL 2.0
前提 必须是同一阿里云region的Data Lake Analytics(DLA)到AnalyticDB的才能进行清洗操作; 开通并初始化了该region的DLA服务(目前仅支持上海region(华东2),后续会同步其他region); 开通并购买了AnalyticDB的实例,实例规模和数据清洗速度强相关,与AnalyticDB的实例资源规模基本成线性比例关系。
4566 0
|
NoSQL
An Insight into MongoDB Sharding Chunk Splitting and Migration
Sharding is a method of data distribution across multiple machines. MongoDB uses sharding to support deployments with very large data sets and high throughput operations.
3094 0
|
分布式计算 关系型数据库 MaxCompute
Best Practices for Data Migration from MaxCompute to HybridDB for PostgreSQL
Users often struggle to migrate data from MaxCompute to HybridDB. This blog describes five steps that will help you migrate data conveniently.
2943 0
Best Practices for Data Migration from MaxCompute to HybridDB for PostgreSQL
|
关系型数据库
使用 www_fdw 插件向PG/PPAS导入数据
www_fdw 插件支持通过http协议把文本数据导入到PG/PPAS中 RDS PG/PPAS 新版本已经支持通过 www_fdw 下面简单介绍下使用方式 启动http服务 导入数据前,我们需要在文件服务器上启动一个http服务,再把要导入的文本数据放在对应目录 创建 www_fdw 插
3385 0
Greenplum 通过gpfdist + EXTERNAL TABLE 并行导入数据
Greenplum 提供了快速导入数据的方法,下面通过一个例子演示给大家.
16879 0