您的当前位置:首页正文

ES数据-MySql处理Date类型的数据导入处理

2023-11-10 来源:好兔宠物网

用ES的小伙伴们,相信大家都遇到过Mapping处理Date类型的数据头疼问题吧。

不用头疼了,我来给你提供一种解决方案:

1、Maping定义为:

{  "mappings": {    "carecustomerlog_type_all": {      "properties": {        "ID": {          "type": "long"        },        "APPLYRATE": {          "type": "double"        },        "PREAPPLYRATE": {          "type": "double"        },        "TYPE": {          "type": "long"        },        "CDATE": {          "type": "long"        },        "CARECUSTOMID": {          "type": "long"        },        "CAREACCOUNTID": {          "type": "long"        },        "watenum": {          "type": "string",          "index": "not_analyzed"        },        "customerid": {          "type": "string",          "index": "not_analyzed"        },        "orderid": {          "type": "string",          "index": "not_analyzed"        },        "customername": {          "type": "string",          "index": "not_analyzed"        },        "content": {          "type": "string",          "index": "not_analyzed"        }      }    },    "careaccountin_type_all": {      "properties": {        "id": {          "type": "long"        },        "customerid": {          "type": "string",          "index": "not_analyzed"        },        "groupid": {          "type": "string",          "index": "not_analyzed"        },        "accountType": {          "type": "string",          "index": "not_analyzed"        },        "rate": {          "type": "double"        },        "amount": {          "type": "double"        },        "fee": {          "type": "double"        },        "sellerid": {          "type": "string",          "index": "not_analyzed"        },        "sellername": {          "type": "string",          "index": "not_analyzed"        },        "state": {          "type": "string",          "index": "not_analyzed"        },        "customername": {          "type": "string",          "index": "not_analyzed"        },        "createdate": {          "type": "string",          "index": "not_analyzed"        },        "groupname": {          "type": "string",          "index": "not_analyzed"        },        "adviserid": {          "type": "string",          "index": "not_analyzed"        },        "advisername": {          "type": "string",          "index": "not_analyzed"        },        "ordergroupid": {          "type": "string",          "index": "not_analyzed"        },        "ordergroupname": {          "type": "string",          "index": "not_analyzed"        },        "comm": {          "type": "string",          "index": "not_analyzed"        },        "watenum": {          "type": "string",          "index": "not_analyzed"        },        "appkey": {          "type": "string",          "index": "not_analyzed"        },        "paytime": {          "type": "long"        }      }    },    "carecustomerlog_type_funddetails": {      "properties": {        "ID": {          "type": "long"        },        "CDATE": {          "type": "long"        },        "orderid": {          "type": "string",          "index": "not_analyzed"        },        "PREAPPLYRATE": {          "type": "double"        },        "APPLYRATE": {          "type": "double"        },        "content": {          "type": "string",          "index": "not_analyzed"        },        "TYPE": {          "type": "long"        },        "CAREACCOUNTID": {          "type": "long"        },        "watenum": {          "type": "string",          "index": "not_analyzed"        },        "customerid": {          "type": "string",          "index": "not_analyzed"        },        "groupid": {          "type": "string",          "index": "not_analyzed"        },        "accountType": {          "type": "string",          "index": "not_analyzed"        },        "rate": {          "type": "double"        },        "amount": {          "type": "double"        },        "fee": {          "type": "double"        },        "sellerid": {          "type": "string",          "index": "not_analyzed"        },        "sellername": {          "type": "string",          "index": "not_analyzed"        },        "state": {          "type": "string",          "index": "not_analyzed"        },        "customername": {          "type": "string",          "index": "not_analyzed"        },        "createdate": {          "type": "string",          "index": "not_analyzed"        },        "groupname": {          "type": "string",          "index": "not_analyzed"        },        "adviserid": {          "type": "string",          "index": "not_analyzed"        },        "advisername": {          "type": "string",          "index": "not_analyzed"        },        "ordergroupid": {          "type": "string",          "index": "not_analyzed"        },        "ordergroupname": {          "type": "string",          "index": "not_analyzed"        },        "paytime": {          "type": "long"        }      }    }  }}

在Mapping中把Date类型数据在es中定义成long类型。

 

在code中执行代码时,用MySql函数UNIX_TIMESTAMP(cai.paytime)获取日期的秒数据,插入到ES中

 public static APIResult<String> save(String index, String type, String idName, JSONArray jsonArray)    {      BulkRequestBuilder bulkRequest = client.prepareBulk().setRefresh(true);      for (Iterator localIterator = jsonArray.iterator(); localIterator.hasNext(); ) { Object object = localIterator.next();        JSONObject json = StringUtils.isJSONObject(object);        String idValue = json.optString(idName);        if (StringUtils.isBlank(idValue)) {          idValue = idName;        }        if (StringUtils.isBlank(idName)) {          IndexRequestBuilder lrb = client.prepareIndex(index, type).setSource(json.toString());          bulkRequest.add(lrb);        }        else        {          IndexRequestBuilder lrb = client.prepareIndex(index, type, idValue).setSource(json.toString());          bulkRequest.add(lrb);        }      }      BulkResponse bulkResponse = null;    try {        bulkResponse = (BulkResponse) bulkRequest.execute().actionGet();    }    catch (Exception e) {        e.printStackTrace();    }      if (bulkResponse.hasFailures())      {        System.out.println(bulkResponse.getItems().toString());        return new APIResult(500, "保存ES失败!");      }      bulkRequest = client.prepareBulk();      return new APIResult(200, "保存ES成功!");    }

,执行添加,提醒一下ES默认会设置分词,在添加之前,应该首先定义Mapping,在执行添加。

然后就可以执行select、update、delete操作了。

ES数据-MySql处理Date类型的数据导入处理

标签:

小编还为您整理了以下内容,可能对您也有帮助:

mysql中如何插入date日期型数值

解决方案一:

日期前面的符号换为逗号

日期可以用mysql的方法todate

解决方案二:

MySQL 插入数据 date 格式

mysql插入date类型的值

mysql插入date类型的值 

解决方案三:

nsert into table (date) values ('to_date('2009-06-08 23:53:17','YYYY-DD-MM HH:MI:SS'),'

解决方案四:

数据库中日期字段设置datetime类型 然后就可以插入对应字符串

拓展资料

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

如何在MySQL中插入日期类型数据?

insert into 替换成你的表名 (name,date,value) values ('魂牵梦萦','2009-06-08 23:53:17','朝秦暮楚');

如果你是直接在Mysql中操作的话,建议用下navcait for mysql,界面操作完成后有一个查看代码,这样你既可以达到想要的功能,有能很快学到不同的sql语句。

MySQL :

是一个关系型数据库,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权*(本词条"授权*"),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP ,Linux和 Apache 可组成良好的开发环境,经过多年的web技术发展,在业内被广泛使用的一种web服务器解决方案之一,称之为LAMP。

系统特性:

1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性

2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统

3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

4.支持多线程,充分利用CPU资源

5.优化的SQL查询算法,有效地提高查询速度

6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。

7.提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。

8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。

9.提供用于管理、检查、优化数据库操作的管理工具。

10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

11.支持多种存储引擎。

如何在MySQL中插入日期类型数据?

insert into 替换成你的表名 (name,date,value) values ('魂牵梦萦','2009-06-08 23:53:17','朝秦暮楚');

如果你是直接在Mysql中操作的话,建议用下navcait for mysql,界面操作完成后有一个查看代码,这样你既可以达到想要的功能,有能很快学到不同的sql语句。

MySQL :

是一个关系型数据库,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权*(本词条"授权*"),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP ,Linux和 Apache 可组成良好的开发环境,经过多年的web技术发展,在业内被广泛使用的一种web服务器解决方案之一,称之为LAMP。

系统特性:

1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性

2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统

3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

4.支持多线程,充分利用CPU资源

5.优化的SQL查询算法,有效地提高查询速度

6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。

7.提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。

8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。

9.提供用于管理、检查、优化数据库操作的管理工具。

10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

11.支持多种存储引擎。

如何向MYSQL中插入date和date-time类型的数据。

如果是获取当前时间的话

使用mysql自带的函数

curdate()返回日期型数据 'YYYY-MM-DD'

now()返回日期时间型数据 'YYYY-MM-DD HH:MM:SS'

$sql="insert into xxx_table (xxx_date , xxx_datetime) values( curdate(),now() )";

MySql要怎么插入DateTime型的数据?

mySQL插入Date Time 型数据就是要获取DateTime型的数据。

获取Date Time型数据的编程例子:

mysql> select now();

| now()               | 

| 2008-08-08 22:20:46 |

除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:

current_timestamp() 

,current_timestamp 

,localtime() 

,localtime 

,localtimestamp    -- (v4.0.6) 

,localtimestamp() -- (v4.0.6)

这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。

扩展资料:

MySql的时间日期函数(Date Time)的种类:

1、函数ADDDATE(date,INTERVAL expr type ) ADDDATE(expr,days )

函数使用说明: 当被第二个参数的 INTERVAL 格式激活后, ADDDATE() 就是 DATE_ADD() 的同义词。相关函数 SUBDATE() 则是 DATE_SUB() 的同义词。对于 INTERVAL 参数上的信息 ,请参见关于 DATE_ADD() 的论述。

2、函数 ADDTIME(expr,expr2 )

函数使用说明: ADDTIME() 将 expr2 添加至 expr 然后返回结果。 expr 是一个时间或时间日期表达式,而 expr2 是一个时间表达式。

3、函数 CONVERT_TZ(dt,from_tz,to_tz )

函数使用说明: CONVERT_TZ() 将时间日期值 dt 从 from_tz 给出的时区转到 to_tz 给出的时区,然后返回结果值。关于可能指定的时区的详细论述,若自变量无效,则这个函数会返回 NULL

参考资料:百度百科 MySQL函数