云数据仓库ADB 3.0 支持 with 用法吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
云原生数据仓库AnalyticDB MySQL版(ADB)3.0确实支持WITH用法,主要用于在创建表时指定连接器及相关参数。以下是关于WITH用法的详细说明和配置信息:
WITH用法的基本结构在ADB 3.0中,WITH子句通常用于定义外部表或临时表的连接器配置。以下是一个典型的CREATE TEMPORARY TABLE语句示例,展示了WITH子句的使用方式:
CREATE TEMPORARY TABLE adb_table (
`id` INT,
`num` BIGINT,
PRIMARY KEY (`id`) NOT ENFORCED
) WITH (
'connector' = 'adb3.0',
'url' = '<yourUrl>',
'userName' = '<yourUsername>',
'password' = '<yourPassword>',
'tableName' = '<yourTablename>'
);
connector:指定连接器类型,固定值为adb3.0。url:JDBC连接地址,格式为jdbc:mysql://<endpoint>:<port>/<databaseName>。userName 和 password:数据库用户名和密码。tableName:目标表的名称。WITH参数分类及说明WITH子句中的参数可以分为以下几类:
这些参数适用于所有场景,包括结果表和维表: - connector:连接器类型,必填,固定值为adb3.0。 - url:JDBC连接地址,必填。 - userName 和 password:数据库用户名和密码,必填。 - tableName:目标表名称,必填。 - maxRetryTimes:写入或读取失败后的最大重试次数,默认值为10。
这些参数仅适用于结果表: - batchSize:一次批量写入的条数,默认值为1000。 - bufferSize:内存中缓存的数据条数,默认值为1000。 - flushIntervalMs:清空缓存的时间间隔,单位为毫秒,默认值为3000。 - ignoreDelete:是否忽略DELETE操作,默认值为false。 - replaceMode:是否采用REPLACE INTO语法插入数据,默认值为true。 - excludeUpdateColumns:更新主键值相同时忽略指定字段的更新。 - connectionMaxActive:线程池大小,默认值为40。
这些参数仅适用于维表: - cache:缓存策略,支持None、LRU和ALL,默认值为ALL。 - cacheSize:缓存大小,仅在cache=LRU时生效,默认值为100000。 - cacheTTLMs:缓存超时时间,单位为毫秒,默认值为Long.MAX_VALUE。
replaceMode)仅在AnalyticDB MySQL 3.1.3.5及以上版本中支持,请确保集群版本满足要求。CACHE ALL策略,请注意节点内存大小,防止出现OOM问题。建议增加维表JOIN节点的内存,增加的内存大小为远程表数据量的两倍。WITH用法以下是一个包含多种WITH参数的完整示例:
CREATE TEMPORARY TABLE adb_sink (
`id` INT,
`num` BIGINT,
PRIMARY KEY (`id`) NOT ENFORCED
) WITH (
'connector' = 'adb3.0',
'url' = 'jdbc:mysql://<endpoint>:<port>/<databaseName>',
'userName' = '<yourUsername>',
'password' = '<yourPassword>',
'tableName' = '<yourTablename>',
'batchSize' = '500',
'bufferSize' = '1000',
'flushIntervalMs' = '5000',
'ignoreDelete' = 'true',
'replaceMode' = 'true',
'connectionMaxActive' = '50'
);
综上所述,云原生数据仓库ADB 3.0完全支持WITH用法,并提供了丰富的参数配置选项以满足不同场景的需求。在使用时,请根据实际需求选择合适的参数,并注意版本兼容性和主键一致性等关键点。
阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。