Elasticsearch 外部表的字段名由目标数据源中的列名决定。当您将外部表连接到 Elasticsearch 时,列名将自动映射到 Elasticsearch 字段名。
字段名格式:
外部表的字段名通常遵循以下格式:
{数据源类型}.{列名}
例如,如果您的外部表连接到 MySQL 数据库,并且有一列名为 first_name,那么 Elasticsearch 字段名将为:
mysql.first_name
特殊字符处理:
Elasticsearch 字段名不能包含以下特殊字符:
.(句点)
,(逗号)
*(星号)
_(下划线),但可以在字段名的开头或结尾使用
如果列名包含这些特殊字符,则在映射到 Elasticsearch 字段名时将被替换为下划线。例如,如果有一列名为 first-name,则 Elasticsearch 字段名将为:
mysql_first-name
保留字处理:
Elasticsearch 保留字不能用作字段名。如果列名是 Elasticsearch 保留字,则在映射到 Elasticsearch 字段名时将加上前缀 es_。例如,如果有一列名为 type,则 Elasticsearch 字段名将为:
es_type
示例:
假设您有一个连接到 PostgreSQL 数据库的外部表,其中包含以下列:
id
name
email
则 Elasticsearch 字段名将分别为:
postgres.id
postgres.name
postgres.email
注意:
对于不支持列别名的数据源,字段名将始终使用原始列名。
您可以使用 transform 语句自定义字段名映射。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云EMR是云原生开源大数据平台,为客户提供简单易集成的Hadoop、Hive、Spark、Flink、Presto、ClickHouse、StarRocks、Delta、Hudi等开源大数据计算和存储引擎,计算资源可以根据业务的需要调整。EMR可以部署在阿里云公有云的ECS和ACK平台。