当前位置: 首页 > news >正文

重庆网上商城网站建设百度指数教程

重庆网上商城网站建设,百度指数教程,济南建站优化,如何给网站做排名优化使用elasticdump导入导出数据 一、安装elasticdump 终端中输入 1 npm install elasticdump -g -g表示全局可用,直接在终端输入 elasticdump --version,出现版本信息即表示安装成功,如下 1 2 C:\Users\T470s>elasticdump --version 6.3.3 …

使用elasticdump导入导出数据

一、安装elasticdump
终端中输入
1 npm install elasticdump -g
-g表示全局可用,直接在终端输入 elasticdump --version,出现版本信息即表示安装成功,如下
1
2 C:\Users\T470s>elasticdump --version
6.3.3

二、常用的导入导出方法
 1、将索引中的数据导出到本地
1 elasticdump --input=http://localhost:9200/demo --output=D:/ES/date/demo.json
 其中,demo是索引。
 2、将本地数据导入es中
1 elasticdump --input=D:/ES/date/demo.json --output=http://localhost:9200/demo1
 3、将es导入另一个es
1 elasticdump --input=http://ip:9200/demo --output=http://127.0.0.1:9200/demo
 4、含有分词的导入
前文:公司正在运行的项目需要搭一个测试环境,需要将正式环境的ES里面存储的数据导入到该测试环境的ES服务器里面。使用本地的windows系统来实现。
1,环境准备
因为elaticdump 依赖于nodejs的环境,需要下载nodejs的相关依赖环境,去nodejs官网直接安装包,我下载的是msi安装程序,安装好之后会直接配置好环境变量,在cmd或者Powershell直接下载elaticdump 即可:
1 npm install elasticdump

2,生产环境导出到测试环境
1)导出分词器,导出分词器的时候要特别注意,我们只能根据索引单个导入,不能全部导出,全部导出会出现索引不存在的错误:
1 elasticdump --input=http://ip:9200 --output=http://127.0.0.1:9200/ --type=analyzer --all=true  
该全部导出导入的命令会如下错误:
1 Error Emitted => {“root_cause”:[{“type”:“action_request_validation_exception”,“reason”:“Validation Failed: 1: index is missing;”}],“type”:“action_request_validation_exception”,“reason”:“Validation Failed: 1: index is missing;”}
 
所以后面改为按索引分别导入则可以:
1
2
3 elasticdump --input=http://ip:9200/applog --output=http://127.0.0.1:9200/applog --type=analyzer
elasticdump --input=http://ip:9200/cms_article --output=http://127.0.0.1:9200/cms_article --type=analyzer
elasticdump --input=http://ip:9200/followup --output=http://127.0.0.1:9200/followup --type=analyzer
坑:再倒入的时候我并不知道到底有多少个索引,如何确定索引的名称?
这里我是直接先导出所有映射mapping到本地,然后找到索引的名称再到各导入分词:
1 elasticdump --input=D:/mapping.json --output=http://127.0.0.1:9200/ --all=true --type=mapping
疑惑:我这里的索引目前只有三个,如果是多个怎么处理?超过100?
2)导出映射mapping
映射mapping可以直接全部导入导出,直接命令:
1 elasticdump --input=http://ip:9200/ --output=http://127.0.0.1:9200/ --all=true --type=mapping
3)导出全部数据data
每个索引下的数据可以全部一次性导入:
1 elasticdump --input=http://ip:9200/ --output=http://127.0.0.1:9200/ --all=true --type=data
3,总结
1),如果不导入analyzer会怎么样?
我试过如果只导入data和mapping,则数据会导入,mapping会发生变化,最终的结果没有分词的效果。
2),如果不导入mapping也不会有分词的效果。
3),顺序导入最好按照:analyzer,mapping和data这个顺序来,防止出现分词失效的结果。

顺序导入按照:analyzer,mapping,data

es数据的导出

//索引的导出

// 导出 index 的 mapping 到 .json 文件

elasticdump \--input=http://production.es.com:9200/demo \--output=/data/demo.json \--type=mapping

//导出全部索引

elasticdump --input=http://ip:9200/ --output=http://127.0.0.1:9200/ --all=true --type=mapping

//数据的导出

// 导出 index 的所有数据到 .json 文件

elasticdump \--input=http://production.es.com:9200/demo \--output=/data/demo.json \--type=data

//导出全部数据

elasticdump --input=http://ip:9200/ --output=http://127.0.0.1:9200/ --all=true --type=data

//分词器导出

//导出分词器,导出分词器的时候要特别注意,我们只能根据索引单个导入,不能全部导出,全部导出会出现索引不存在的错误
//改为按索引分别导入:

elasticdump --input=http://ip:9200/applog --output=http://127.0.0.1:9200/applog --type=analyzer
elasticdump --input=http://ip:9200/cms_article --output=http://127.0.0.1:9200/cms_article --type=analyzer
elasticdump --input=http://ip:9200/followup --output=http://127.0.0.1:9200/followup --type=analyzer

es数据的导入

  • 从本地文件导入数据

elasticdump  --input=/data/demo.json --output=http://localhost:9200/demo1

将es导入另一个es

elasticdump --input=http://ip:9200/demo --output=http://127.0.0.1:9200/demo

#!/usr/bin/env bash

array=(“full_vehicle_portrait” “latest_car_history_trail_dt” “vehicle_abnormal_monitor” “gantry_transaction-20200914” “vehicle_abnormal_summary”)
for(( i=0;i<KaTeX parse error: Expected '}', got '#' at position 2: {#̲array[@]};i++))…{array[i]}
#创建索引
curl -X PUT ‘http://cdh173:9200/$VAR1?pretty’

elasticdump
–input=http://33.69.6.95:9200/array[i]−−output=http://cdh219:9200/{array[i]} \ --output=http://cdh219:9200/array[i] output=http://cdh219:9200/{array[i]}
–type=analyzer
elasticdump
–input=http://33.69.6.95:9200/array[i]−−output=http://cdh219:9200/{array[i]} \ --output=http://cdh219:9200/array[i] output=http://cdh219:9200/{array[i]}
–type=settings
elasticdump
–input=http://33.69.6.95:9200/array[i]−−output=http://cdh219:9200/{array[i]} \ --output=http://cdh219:9200/array[i] output=http://cdh219:9200/{array[i]}
–type=mappingcc

elasticdump --size=200
–input=http://33.69.6.95:9200/array[i]−−output=http://cdh219:9200/{array[i]} \ --output=http://cdh219:9200/array[i] output=http://cdh219:9200/{array[i]}
–type=data
done

如果我es里索引非常多,这样一个一个去执行依然会耗时,怎么做?当然想到了shell脚本。
脚本名字为:esExportOrInput.sh
#!/bin/sh
index_name=$1
index_data=$1"_data"
index_settings=$1"_settings"
echo “开始执行”

导出索引Mapping数据

./elasticdump --input=http://source:9200/indexname/−−output=./index_name/ --output=./indexname/output=./index_name.json --type=mapping
./elasticdump --input=http://source:9200/indexname/−−output=./index_name/ --output=./indexname/output=./index_settings.json --type=settings

导出索引数据

./elasticdump --input=http://source:9200/indexname/−−output=./index_name/ --output=./indexname/output=./index_data.json --type=data --limit=1000

#导入索引Mapping数据
echo "执行删除目标服务的索引start:"indexnamecurl−XDELETEhttp://target:9200/index_name curl -XDELETE http://target:9200/indexnamecurlXDELETEhttp://target:9200/index_name
echo "执行删除目标服务的索引end:“indexnamesleep3echo"等待三秒。。。"./elasticdump−−input=./index_name sleep 3 echo "等待三秒。。。" ./elasticdump --input=./indexnamesleep3echo"等待三秒。。。"./elasticdumpinput=./index_settings.json --output=http://target:9200/indexname/−−type=settings./elasticdump−−input=./index_name/ --type=settings ./elasticdump --input=./indexname/type=settings./elasticdumpinput=./index_name.json --output=http://target:9200/indexname/−−type=mapping./elasticdump−−input=./index_name/ --type=mapping ./elasticdump --input=./indexname/type=mapping./elasticdumpinput=./index_data.json --output=http://target:9200/KaTeX parse error: Expected 'EOF', got '#' at position 39: …a --limit=1000 #̲清除生成的文件 rm -f .…index_name.json
rm -f ./indexsettings.jsonrm−f./index_settings.json rm -f ./indexsettings.jsonrmf./index_data.json
#清除生成的文件
echo “索引”$index_name"执行完毕”

执行时候需要传递1个变量,就是索引名字index_name

温馨提示:
1、这个脚本仅仅只能在安装了elasticdump服务器上使用,脚本目录在/root/node_modules/elasticdump/bin
2、导出导入默认100条一批,可以添加–limit 每页条数 来自定义每页数量。
3、导入的时候一定要限制性settings的文件导入,在执行mapping的导入,不然会冲突,因为settings上带了uuid的唯一标识。
样例:如果我要对bum_user这个索引的数据从测试环境迁移到压测服务器target上,就这样执行命令
./esExportOrInput.sh bum_user

留个作业,可以对源服务器和目标服务器进行动态参数传递,就可以做到万能适配了,有兴趣就重写

http://www.yidumall.com/news/84196.html

相关文章:

  • 做分析报表的网站谷歌手机网页版入口
  • 灌云县人民政府网站杭州seo网站建设靠谱
  • 网站错误提示页设计杭州seo网站排名优化
  • 单页网站制作软件百度搜索排名
  • 没有网的电脑怎么安装wordpressseo专员的工作内容
  • 阿里云建设网站的流程百度广告联盟
  • 大连外经贸网站竞价sem培训
  • 天津建设网站安全员考试查询seo基础知识
  • 专业做轮胎的网站百度网盘pc端网页版
  • 做网站一定要注册域名吗网上怎么推广公司产品
  • html制作电影网站百度用户服务中心人工电话
  • 在线做视频的网站论文收录网站有哪些
  • 网站开发pmpsoso搜索引擎
  • 网站带搜索功能怎么做国际新闻稿件
  • 网络营销推青岛网络优化费用
  • 互联网营销师在哪里报名广东优化疫情防控措施
  • 潍坊做网站潍坊做网站百度推广首页登录
  • 做电影网站一年赚多少百度一下百度网页版
  • 色情网站开发网上支付网店运营工资一般多少
  • 惠阳东莞网站建设深圳seo优化排名公司
  • 海洋专业做网站t和p在一起怎么做网站
  • 贵州网站开发制作公司百度在线识图
  • 山东省住房和城乡建设部网站明年2024年有疫情吗
  • 网站建设原码精准网络营销推广
  • 自己电脑做网站 路由器外包公司软件开发
  • 网站的开发建设要做什么莱芜seo
  • 免费的网站模板哪里有惠州短视频seo
  • 吉林省建设厅门户网站网站建设策划方案
  • 做网站申请完域名后做什么上海网站关键词排名
  • dw网页设计图片链接福州关键词排名优化