创建 MaxCompute 外部表映射 Hologres 表

根据您提供的参考代码,以下是创建 tmp_kes_analy_ad_group_id 外部表的完整 SQL:

CREATE EXTERNAL TABLE IF NOT EXISTS fenghuo_db.tmp_kes_analy_ad_group_id(
    campaign_id STRING,
    ad_group_id STRING,
    ds STRING
) 
STORED BY 'com.aliyun.odps.jdbc.JdbcStorageHandler' 
WITH SERDEPROPERTIES(
    'odps.properties.rolearn'='acs:ram::1183641352893724:role/aliyunodpsholorole',
    'odps.federation.jdbc.column.type.mapping'='campaign_id:string,ad_group_id:string,ds:string'
) 
LOCATION 'jdbc:postgresql://hgprecn-cn-zpr3gi9yg002-cn-hangzhou-internal.hologres.aliyuncs.com:80/fenghuo?ApplicationName=MaxCompute&currentSchema=public&useSSL=false&table=tmp_kes_analy_ad_group_id/' 
TBLPROPERTIES (
    'mcfed.mapreduce.jdbc.driver.class'='org.postgresql.Driver',
    'odps.federation.jdbc.target.db.type'='holo',
    'odps.federation.jdbc.input.fetch.size'='2000',
    'odps.federation.jdbc.split.size'='64MB'
);

关键参数说明

  1. 表结构定义
    • 定义了3个字段:campaign_id, ad_group_id, ds
    • 全部使用STRING类型(对应Hologres的TEXT类型)
  1. 权限配置
    • 使用相同的RAM角色:aliyunodpsholorole
    • 确保该角色有访问Hologres表的权限
  1. 连接配置
    • 相同的Hologres内网地址
    • 指定目标表为tmp_kes_analy_ad_group_id
    • 使用public schema
  1. 性能优化参数
    • 设置fetch size为2000行
    • 设置split size为64MB

使用前检查清单

  1. 确认Hologres表存在
-- 在Hologres中执行
SELECT * FROM information_schema.tables 
WHERE table_name = 'tmp_kes_analy_ad_group_id';
  1. 验证权限
-- 在Hologres中授权
GRANT SELECT ON TABLE public.tmp_kes_analy_ad_group_id TO "aliyunodpsholorole";
  1. 测试连接
    • 确保MaxCompute和Hologres在同一地域(cn-hangzhou)
    • 确认网络连通性

替代简化方案

如果上述语法仍报错,可以使用更简洁的版本:

CREATE EXTERNAL TABLE IF NOT EXISTS fenghuo_db.tmp_kes_analy_ad_group_id(
    campaign_id STRING,
    ad_group_id STRING,
    ds STRING
) 
USING JAR 'odps-federation-jdbc-1.0.jar'
LOCATION 'jdbc:postgresql://hgprecn-cn-zpr3gi9yg002-cn-hangzhou-internal.hologres.aliyuncs.com:80/fenghuo'
TBLPROPERTIES (
    'table'='tmp_kes_analy_ad_group_id',
    'schema'='public',
    'driver'='org.postgresql.Driver',
    'odps.properties.rolearn'='acs:ram::1183641352893724:role/aliyunodpsholorole'
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值