SQL 转 ES Mapping 工具 | 在线 SQL 文档转 ES Mapping 生成器 | GoTool在线工具集

高效后端开发工具系列 - 指南与案例

😫 核心痛点

免费在线 SQL 转 ES Mapping 工具,快速将 Elasticsearch 文档结构转换为 ES Mapping 实体类。支持字段映射、类型自动转换、代码生成,提高开发效率。。在实际开发中,这些琐碎的转换或配置工作往往消耗大量精力且容易引入错误。GoTool 为此提供了快速、准确且免费的在线解决方案。

💡 功能亮点 & 使用方案

功能介绍

1.支持多种数据库的建表 sql转json, 其中包含(pg、oracle、mysql)等数据库; 建表语句, 建表语句, 建表语句(重要的说3遍)
2.在转换 sql 的时候, 需要确认下是否需要切换处理类型, 暂时支持3种处理方式(normal, postgresql, oracle), 默认: normal.
3.支持自定义过滤不需要的字段, 多个字段通过 , 隔开

示例

mysql 建表语句
CREATE TABLE if not exists user (
	id int NOT NULL AUTO_INCREMENT,
	name varchar(10) NOT NULL COMMENT '姓名',
	gender tinyint NOT NULL DEFAULT 0 COMMENT '性别 0-未知 1-男 2-女',
	age int NOT NULL COMMENT '年龄',
	created_date datetime DEFAULT CURRENT_TIMESTAMP,
	updated_date datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
	PRIMARY KEY (id)
);

处理后

{
  "mappings": {
    "properties": {
      "id": {
        "type": "keyword"
      },
      "name": {
        "fields": {
          "keyword": {
            "ignore_above": 256,
            "type": "keyword"
          }
        },
        "meta": {
          "description": "姓名"
        },
        "type": "text"
      },
      "gender": {
        "meta": {
          "description": "性别 0-未知 1-男 2-女"
        },
        "type": "integer"
      },
      "age": {
        "meta": {
          "description": "年龄"
        },
        "type": "keyword"
      },
      "created_date": {
        "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
        "type": "date"
      },
      "updated_date": {
        "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
        "type": "date"
      }
    }
  }
}
pgsql 建表语句
CREATE TABLE if not exists user (
    id character varying (32) NOT NULL DEFAULT sys_guid ()
    name character varying (10) NOT NULL
    gender tinyint NOT NULL
    age tinyint NOT NULL
    created_date timestamp without time zone DEFAULT now ()
    updated_date timestamp without time zone DEFAULT now ()
    CONSTRAINT user_pkey PRIMARY KEY (id)
);
COMMENT ON TABLE user IS 'user Table'
COMMENT ON COLUMN user.id IS 'primary key'
COMMENT ON COLUMN user.name IS 'name'
COMMENT ON COLUMN user.gender IS 'Sex 0-unknown 1-male 2-female'
COMMENT ON COLUMN user.age IS 'age'
COMMENT ON COLUMN user.created_date IS 'creation time'
COMMENT O

处理后

{
  "mappings": {
    "properties": {
      "id": {
        "type": "keyword"
      },
      "name": {
        "fields": {
          "keyword": {
            "ignore_above": 256,
            "type": "keyword"
          }
        },
        "meta": {
          "description": "姓名"
        },
        "type": "text"
      },
      "gender": {
        "meta": {
          "description": "性别 0-未知 1-男 2-女"
        },
        "type": "integer"
      },
      "age": {
        "meta": {
          "description": "年龄"
        },
        "type": "keyword"
      },
      "created_date": {
        "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
        "type": "date"
      },
      "updated_date": {
        "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
        "type": "date"
      }
    }
  }
}
oracle 建表语句
CREATE TABLE if not exists user (
  id character varying(32) NOT NULL DEFAULT sys_guid(),
  name character varying(10) NOT NULL,
  gender tinyint NOT NULL,
  age tinyint NOT NULL,
  created_date date default sysdate,,
  updated_date date default sysdate,,
  CONSTRAINT user_pkey PRIMARY KEY (id)
);
COMMENT ON TABLE user IS '用户表';
COMMENT ON COLUMN user.id IS '主键';
COMMENT ON COLUMN user.name IS '姓名';
COMMENT ON COLUMN user.gender IS '性别 0-未知 1-男 2-女';
COMMENT ON COLUMN user.age IS '年龄';
COMMENT ON COLUMN user.created_date IS '创建时间';
COMMENT ON COLUMN user.updated_date IS '更新时间';

处理后

{
  "mappings": {
    "properties": {
      "id": {
        "type": "keyword"
      },
      "name": {
        "fields": {
          "keyword": {
            "ignore_above": 256,
            "type": "keyword"
          }
        },
        "meta": {
          "description": "姓名"
        },
        "type": "text"
      },
      "gender": {
        "meta": {
          "description": "性别 0-未知 1-男 2-女"
        },
        "type": "integer"
      },
      "age": {
        "meta": {
          "description": "年龄"
        },
        "type": "keyword"
      },
      "created_date": {
        "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
        "type": "date"
      },
      "updated_date": {
        "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
        "type": "date"
      }
    }
  }
}