python读取mysql数据写入ES总结

python读取mysql数据写入ES总结,第1张

准备工作: mysql库的安装。

python中mysql库用的是mysql-connector,安装执行如下命令:

第一步: 连接mysql,读取数据。

通过执行sql语句,读取mysql数据。

至此,获得mysql的原始数据raw_data 。接下来对数据进行预处理,按日期进行分组聚合,然后重命名行和列名,得到dataFrame格式的数据。

第二步: 连接ES。

这步没有太多的可解释的地方,就是配置信息。

第三步: ES主键加密。

这步的目的是为了保持主键唯一性,防止重复写入。用的方法是md5加密。

第四步: 写入ES

至此,一切的准备工作都做好了,数据也有了,主键加密也做了,就开始写入了。

用main方法执行以上方法:

最后查看一下ES写的是否成功,用查询方法

如果返回以下信息,说明ES里成功插入了数据。

另外,ES删除索引的 *** 作:

MYSQL命令行参数的详细说明:Usage:mysql [OPTIONS] [database]

-?, --help #显示帮助信息并退出

-I, --help #显示帮助信息并退出

--auto-rehash #自动补全功能,就像linux里面,按Tab键出提示差不多

-A, --no-auto-rehash #默认状态是没有自动补全功能的。-A就是不要自动补全功能

-B, --batch #mysql不使用历史文件,禁用交互

--character-sets-dir=name #字体集的安装目录

--default-character-set=name #设置数据库的默认字符集

--column-type-info #结果集返回时,同时显示字段的类型等相关信息

-c, --comments #Preserve comments. Send comments to the server. The

default is --skip-comments (discard comments), enable

with –comments

-C, --compress #在客户端和服务器端传递信息时使用压缩

-#, --debug[=#] #bug调用功能

-D, --database=name #使用哪个数据库

--default-character-set=name #设置默认的字符集

--delimiter=name #设置默认命令结束符

-e, --execute=name #执行mysql的sql语句

-E, --vertical #垂直打印查询输出

-f, --force #如果有错误跳过去,继续执行下面的

-G, --named-commands #Enable named commands. Named commands mean thisprogram's

internal commandssee mysql>help . When enabled, the named commandscan be used from any line of the query, otherwise only from the first line,before an enter.

Disable with --disable-named-commands. This option is disabled by default.

-g, --no-named-commands

Named commands are disabled. Use \* form only, or use named commands onlyin the beginning of a line ending with a semicolon () Since version 10.9 theclient now starts with this option ENABLED by default! Disable with '-G'. Longformat commands still work from the first line. WARNING: option deprecated

use --disable-named-commands instead.

-i, --ignore-spaces #忽视函数名后面的空格.

--local-infile #启动/禁用LOAD DATA LOCAL INFILE.

-b, --no-beep #sql错误时,禁止嘟的一声

-h, --host=name #设置连接的服务器名或者Ip

-H, --html #以html的方式输出

-X, --xml #以xml的方式输出

--line-numbers #显示错误的行号

-L, --skip-line-numbers #忽略错误的行号

-n, --unbuffered #每执行一次sql后,刷新缓存

--column-names #查寻时显示列信息,默认是加上的

-N, --skip-column-names #不显示列信息

-O, --set-variable=name #设置变量用法是--set-variable=var_name=var_value

--sigint-ignore #忽视SIGINT符号(登录退出时Control-C的结果)

-o, --one-database #忽视除了为命令行中命名的默认数据库的语句。可以帮跳过日志中的其它数据库的更新。

--pager[=name] #使用分页器来显示查询输出,这个要在linux可以用more,less等。

--no-pager #不使用分页器来显示查询输出。

-p, --password[=name] #输入密码

-W, --pipe #Use named pipes to connect to server.

-P, --port=#  #设置端口

--prompt=name #设置mysql提示符

--protocol=name #设置使用的协议

-q, --quick #不缓存查询的结果,顺序打印每一行。如果输出被挂起,服务器会慢下来,mysql不使用历史文件。

-r, --raw #写列的值而不转义转换。通常结合--batch选项使用。

--reconnect #如果与服务器之间的连接断开,自动尝试重新连接。禁止重新连接,使用--disable-reconnect。

-s, --silent #一行一行输出,中间有tab分隔

-S, --socket=name #连接服务器的sockey文件

--ssl #激活ssl连接,不激活--skip-ssl

--ssl-ca=name #CA file in PEM format (check OpenSSL docs, implies--ssl).

--ssl-capath=name #CA directory (check OpenSSL docs, implies --ssl).

--ssl-cert=name #X509 cert in PEM format (implies --ssl).

--ssl-cipher=name #SSL cipher to use (implies --ssl).

--ssl-key=name #X509 key in PEM format (implies --ssl).

--ssl-verify-server-cert #连接时审核服务器的证书

-t, --table #以表格的形式输出

--tee=name #将输出拷贝添加到给定的文件中,禁时用--disable-tee

--no-tee #根--disable-tee功能一样

-u, --user=name #用户名

-U, --safe-updates #Only allow UPDATE and DELETE that uses keys.

-U, --i-am-a-dummy #Synonym for option --safe-updates, -U.

-v, --verbose #输出mysql执行的语句

-V, --version #版本信息

-w, --wait #服务器down后,等待到重起的时间

--connect_timeout=#  #连接前要等待的时间

--max_allowed_packet=#  #服务器接收/发送包的最大长度

--net_buffer_length=# #TCP/IP和套接字通信缓冲区大小。

--select_limit=# #使用--safe-updates时SELECT语句的自动限制

--max_join_size=# #使用--safe-updates时联接中的行的自动限制

--secure-auth #拒绝用(pre-4.1.1)的方式连接到数据库

--server-arg=name #Sendembeddedserverthisasaparameter.

--show-warnings #显示警告

备份命令

mysqlbinlog

--read-from-remote-server

--raw

--host=192.168.244.145

--port=3306

--user=repl

--password=repl

--stop-never

mysql-bin.000001

解释如下:

--read-from-remote-server:用于备份远程服务器的binlog。如果不指定该选项,则会查找本地的binlog。

--raw:binlog日志会以二进制格式存储在磁盘中,如果不指定该选项,则会以文本形式保存。

--user:复制的mysql用户,只需要授予replication

slave权限。

--stop-never:mysqlbinlog可以只从远程服务器获取指定的几个binlog,也可将不断生成的binlog保存到本地。指定此选项,代表只要远程服务器不关闭或者连接未断开,mysqlbinlog就会不断的复制远程服务器上的binlog。

mysql-bin.000001:代表从哪个binlog开始复制。

除了以上选项外,还有以下几个选项需要注意:

--stop-never-slave-server-id:在备份远程服务器的binlog时,mysqlbinlog本质上就相当于一个从服务器,该选项就是用来指定从服务器的server-id的。默认为-1。

--to-last-log:代表mysqlbinlog不仅能够获取指定的binlog,还能获取其后生成的binlog,获取完了,才终止。如果指定了--stop-never选项则会隐式打开--to-last-log选项。

--result-file:用于设置远程服务器的binlog,保存到本地的前缀。譬如对于mysql-bin.000001,如果指定--result-file=/test/backup-,则保存到本地后的文件名为/test/backup-mysql-bin.000001。注意:如果将--result-file设置为目录,则一定要带上目录分隔符“/”。譬如--result-file=/test/,而不是--result-file=/test,不然保存到本地的文件名为/testmysql-bin.000001。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7303446.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存