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

网站建设风险分析上海外贸网站设计

网站建设风险分析,上海外贸网站设计,wordpress群空间,门户网站建设招标文件公司的老项目了,采用的是sqlserver 2022作为数据卡做的,但是产品对接客户,发现对搜索的要求很高,尤其是全文检索,考虑到ES采用倒排所以效率上的优势和整体开发的成本,大佬们商量之后,果断的采用…

公司的老项目了,采用的是sqlserver 2022作为数据卡做的,但是产品对接客户,发现对搜索的要求很高,尤其是全文检索,考虑到ES采用倒排所以效率上的优势和整体开发的成本,大佬们商量之后,果断的采用了Elasticsearch作为搜索引擎的策略,那么剩下的就是如何将数据同步到ES的问题了,这个的一部分也就是我的工作了,所以分享一下自己工作过程当中的思路和遇到的问题。

一、整体同步思路

1. 同步架构选择

方案优点缺点适用场景
CDC + Logstash实时性好,低延迟配置复杂需要准实时同步
定时批量导出导入实现简单数据延迟大非实时分析场景
触发器+消息队列灵活可控影响源库性能高定制化需求
第三方工具(如Debezium)开箱即用额外成本企业级解决方案

2. 采用方案:变更数据捕获(CDC) + Logstash 管道


二、具体实现案例

步骤1:启用CDC

-- 在数据库级别启用CDC
EXEC sys.sp_cdc_enable_db;
​
-- 对特定表启用CDC
EXEC sys.sp_cdc_enable_table@source_schema = 'dbo',@source_name = 'Products',@role_name = NULL,@supports_net_changes = 1;

步骤2:配置Logstash管道

input {jdbc {jdbc_driver_library => "D:/sqljdbc_12.2/enu/mssql-jdbc-12.2.0.jre11.jar"jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"jdbc_connection_string => "jdbc:sqlserver://localhost:1433;databaseName=YourDB"jdbc_user => "sa"jdbc_password => "yourpassword"schedule => "* * * * *"  # 每分钟执行一次statement => "SELECT * FROM cdc.dbo_Products_CT WHERE __$start_lsn > ?"use_column_value => truetracking_column => "__$start_lsn"tracking_column_type => "numeric"last_run_metadata_path => "D:/logstash-8.12.0/products_last_run"}
}
​
output {elasticsearch {hosts => ["http://localhost:9200"]index => "sqlserver-products"document_id => "%{ProductID}"action => "update"doc_as_upsert => true}
}

案例2:批量全量+增量同步

使用Elasticsearch JDBC插件直接导入

# 全量导入
bin/elasticsearch-jdbc \-url "jdbc:sqlserver://localhost:1433;databaseName=YourDB" \-user sa -password yourpassword \-table "Products" \-index "products-index" \-type "product-type" \-id "ProductID"
​
# 增量导入(基于时间戳)
bin/elasticsearch-jdbc \-url "jdbc:sqlserver://localhost:1433;databaseName=YourDB" \-user sa -password yourpassword \-table "Products" \-index "products-index" \-type "product-type" \-id "ProductID" \-incremental "true" \-incremental_column "ModifiedDate" \-incremental_last_value "2024-01-01"

三、常见问题及解决方案

1. 性能问题

问题表现

  • SQL Server CPU使用率高

  • Elasticsearch索引速度慢

  • 网络带宽成为瓶颈

解决方案

# Logstash优化配置示例
input {jdbc {# 增加分页大小jdbc_paging_enabled => truejdbc_page_size => 50000# 使用fetch_size提高性能jdbc_fetch_size => 1000}
}
​
output {elasticsearch {# 启用批量提交flush_size => 1000# 增加工作线程workers => 4}
}

2. 数据一致性问题

问题表现

  • 同步过程中数据不一致

  • 漏同步或重复同步

  • 数据类型映射错误

解决方案

-- 1. 在SQL Server端添加版本控制字段
ALTER TABLE Products ADD SyncVersion ROWVERSION;
​
-- 2. 使用事务一致性快照
SET TRANSACTION ISOLATION LEVEL SNAPSHOT;
BEGIN TRANSACTION;
-- 查询数据
COMMIT TRANSACTION;

3. 网络和连接问题

问题表现

  • 连接超时

  • 断线后无法恢复

  • SSL/TLS配置问题

解决方案

input {jdbc {# 连接池配置connection_retry_attempts => 3connection_retry_attempts_wait_time => 10# 连接验证validate_connection => true# 超时设置jdbc_connection_timeout => 60}
}

4. 映射和转换问题

问题表现

  • 字段类型不匹配

  • 日期格式问题

  • 特殊字符处理

解决方案

filter {# 日期格式转换date {match => ["CreatedDate", "yyyy-MM-dd HH:mm:ss.SSS"]target => "CreatedDate"}# 字段类型转换mutate {convert => {"Price" => "float""Stock" => "integer"}}# 处理NULL值if [Description] == NULL {mutate {add_field => { "Description" => "" }}}
}

5. 监控和错误处理

推荐方案

output {if "_jsonparsefailure" in [tags] {file {path => "D:/logstash-8.12.0/error_logs/%{+yyyy-MM-dd}-parse-errors.log"}}elasticsearch {# 主输出}# 监控管道性能pipeline {send_to => ["monitoring"]}
}

四、过去的思考

  1. 索引设计优化

    PUT /products-index
    {"settings": {"number_of_shards": 3,"number_of_replicas": 1,"refresh_interval": "30s"},"mappings": {"properties": {"ProductName": { "type": "text", "fields": { "keyword": { "type": "keyword" } } },"Price": { "type": "scaled_float", "scaling_factor": 100 },"CreatedDate": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||epoch_millis" }}}
    }
  2. 使用Ingest Pipeline预处理

    PUT _ingest/pipeline/sqlserver_pipeline
    {"description": "Process SQL Server data","processors": [{"remove": {"field": ["__$start_lsn", "__$update_mask"]}},{"script": {"source": """if(ctx['IsActive'] == false) {ctx['tags'] = ['inactive'];}"""}}]
    }

文章转载自:

http://uQh1U7MO.fjgLf.cn
http://VyBjeufT.fjgLf.cn
http://q22WVeng.fjgLf.cn
http://uoAYj6EA.fjgLf.cn
http://9zWdUoz0.fjgLf.cn
http://E6Kp3K2u.fjgLf.cn
http://LcDpbQbG.fjgLf.cn
http://ZebSGPJz.fjgLf.cn
http://MANvYJVx.fjgLf.cn
http://GSstq9g6.fjgLf.cn
http://gK2QbA3P.fjgLf.cn
http://JhWt93WN.fjgLf.cn
http://9rMw4LqG.fjgLf.cn
http://WgqEmUIn.fjgLf.cn
http://bPDrNFQ7.fjgLf.cn
http://ukx5zH3p.fjgLf.cn
http://o5k6aypR.fjgLf.cn
http://owZ662yT.fjgLf.cn
http://rp1XsDk5.fjgLf.cn
http://PdkmGmtw.fjgLf.cn
http://K4pUv6vl.fjgLf.cn
http://rNYna5NE.fjgLf.cn
http://WZ691VKT.fjgLf.cn
http://1wVcmgyO.fjgLf.cn
http://OFDxvZ6V.fjgLf.cn
http://f1jqLxRz.fjgLf.cn
http://zvYgPvnb.fjgLf.cn
http://JvLyucdb.fjgLf.cn
http://bhmtM5Xt.fjgLf.cn
http://7NHLTznX.fjgLf.cn
http://www.dtcms.com/wzjs/686538.html

相关文章:

  • A华企网络网站建设办公管理系统有哪些
  • 电子商务与网站建设的报告wordpress role
  • wordpress做网站过程批量更新wordpress文章
  • 惠州哪个房地产网站做的比较好如何做产品网站网页设计
  • 青岛网站的优化响应式外贸网站建设
  • 长沙市做网站公司小说一键生成动漫
  • 亚马逊网站开发者平台学校网站开发的项目背景
  • php网站后台密码忘记了怎么办网站建设与推广协议书
  • 泰安电脑网站建设电话discuz官网
  • 网站内容建设是什么网站推广中的评估指标有哪些
  • 餐饮网站模板免费下载照片网站怎么做
  • 酒店网站建设项目一个公司设计网站怎么做的
  • 移动端企业网站模板下载crm系统营销
  • 手机在线网站让百度收录网站
  • 房产网签合同怎么签关键词排名优化
  • 增城区建设局网站wordpress修改网址
  • 腾讯广告建站工具前端与移动开发
  • 高端 网站ps网页设计尺寸规范
  • 吸引人的网站类型动易网站安装子目录中
  • 在您的网站首页添加标签营销策划公司名字简单大气
  • 广东省城乡建设厅网站wordpress 做cms
  • 爱站关键词西安注册公司网上申请入口
  • 北京南站列车时刻表wordpress需要钱吗
  • 餐饮网站界面推广资源网
  • 如何查看一个网站的浏览量外贸网站营销方案
  • 茂名建设企业网站国外设计有名网站
  • phpnow搭建本地网站网站建设与管理常用
  • 海南省两学一做网站网站设计服务合同
  • 深圳网站关键词排名怎么在网站上做图片轮播
  • 开发区全力做好网站建设做黄金的经常看什么网站