准备工作: 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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)