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)透過使用大小寫混合的功能標誌。 混合大小寫功能標誌設定為 OFFPresto(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。
- 使用者可以存取所有表。
有關混合大小寫行為的更多信息,請參閱 基於連接器的混合行為。