Presto(Java ) 混合大小写支持概述
区分大小写是指Presto(Java ) 引擎区分大写和小写字母的能力,将它们视为不同的字符。 在查询数据库时这一点很重要,因为表名和列名的大小写会影响查询结果。
不区分大小写的行为
Presto(Java )发动机行为IBM® watsonx.data直到版本才区分大小写1.0.3。 区分大小写1.1.0。 全部Presto(Java ) 引擎版本1.1.0及以上默认区分大小写。 以下示例中的表名是单独存储和获取的。
- 选择 * 来自catalog1.schema1.table;
- 选择 * 来自catalog1.schema1.TABLE;
- 选择 * 来自catalog1.schema1.TaBle;
区分大小写的行为
Presto(Java )发动机行为IBM® watsonx.data直到版本才区分大小写1.0.3。 区分大小写1.1.0。 全部Presto(Java ) 引擎版本1.1.0及以上默认区分大小写。 以下示例中的表名是单独存储和获取的。
- 选择 * 来自catalog1.schema1.table;
- 选择 * 来自catalog1.schema1.TABLE;
- 选择 * 来自catalog1.schema1.TaBle;
混合大小写功能标志
从IBM® watsonx.data版本2.0.0,新增了一项功能,可以在区分大小写和不区分大小写的行为之间进行切换Presto(Java ) 使用混合大小写功能标志。 混合大小写功能标志在以下情况下设置为 OFF:Presto(Java ) 默认情况下。 在部署期间,可以根据需要将该标志设置为 ON 或 OFFPresto(Java ) 引擎。 建议部署后不要在 ON 和 OFF 配置之间切换,因为这可能会导致系统行为不一致。
要配置标志,您可以使用 定制 API或联系支持团队。
您可以使用以下 curl 命令将标志设置为 true 或 false:
{
"description": "updated description for presto engine",
"engine_display_name": "<engine_display_name>",
"engine_properties": {
"configuration": {
"coordinator": {
},
"worker": {
}
},
"jvm": {
"coordinator": {
},
"worker": {
}
},
"catalog": {
"<catalog_name>": {
"coordinator": {
},
"worker": {
}
}
},
"event_listener": {
},
"jmx_exporter_config": {
},
"log_config": {
"coordinator": {
},
"worker": {
}
},
"global": {
}
},
"engine_restart": "force",
"remove_engine_properties": {
"configuration": {
"coordinator": [
],
"worker": [
]
},
"jvm": {
"coordinator": [
],
"worker": [
]
},
"log_config": {
"coordinator": [
],
"worker": [
]
},
"event_listener": [
],
"global": [
],
"jmx_exporter_config": [
],
"catalog": {
}
},
"tags": [
]
}
以下是两种说明混合大小写支持行为的场景:
场景 1:混合大小写功能标志开启
答: 在混合大小写功能标志 ON 集群中为小写和混合大小写表名创建多个表。
- 用户可以访问所有表。
B. 将混合大小写功能标志的设置从 ON 更改为 OFF。
- 如果有多个表具有相同的名称但混合使用,则这些表可能无法访问或可能导致数据差异,具体取决于所使用的连接器。
场景 1:混合大小写功能标志关闭
答: 在混合大小写功能标志 OFF 集群中创建多个表。
- 对于重复的表名,仅获取最先创建的表。
- 对于唯一的表名,将创建并获取所有表。
B. 将混合大小写功能标志的设置从 OFF 更改为 ON。
- 用户可以访问所有表。
有关混合大小写行为的详细信息,请参阅 基于连接器的混合大小写行为。