美文网首页
ES数据写入调优2

ES数据写入调优2

作者: bigdata张凯翔 | 来源:发表于2021-04-09 18:41 被阅读0次
image.png
1 修改事务日志translog参数(存在数据丢失风险)

默认设置下,translog 的持久化策略是每个请求都flush(durability参数值为request),这样能保证写操作的可靠性,但是对性能会有很严重的影响,实际测试发现如果使用默认设置进行导数据磁盘IO会持续占满。如果系统可以接受一定几率的数据丢失(或有手段补录丢失数据),可以通过调整 translog 持久化策略、周期性和一定大小的时候 flush,能大大提升导入性能。该配置项可以建索引时指定(或者配置到template里去)。执行命令如下所示:

curl -XPUT "http://ip:httpport/myindex/_settings" -H 'Content-Type: application/json' -d'
{
"index": {
    "translog": {
          "flush_threshold_size": "1GB",
          "sync_interval": "180s",
          "durability": "async"
          }
     }
}'

2 禁用Doc Values

默认情况下,支持doc values 的所有字段都是开启的。因为 Doc Values 默认启用,可以选择对数据集里面的大多数字段进行聚合和排序操作。但是如果确定不需要在字段上进行排序和聚合,或从脚本中访问字段值,则可以禁用 doc values 来节省磁盘空间。

要禁用 Doc Values ,在字段的映射(mapping)设置 “doc_values”为“false”即可。例如,这里我们创建了一个新的索引,字段 "session_id" 禁用了 Doc Values:

curl -XPUT "http://ip:httpport/myindex" -H 'Content-Type: application/json' -d'
{
"mappings": {
      "my_type": {
           "properties": {
                 "session_id": {
                         "type": "keyword",
                         "doc_values": false
                  }
            }
       }
    }
}'

3 禁用_source字段

“_source”字段包含在索引时传递的原始JSON文档正文。该“_source”字段本身不被索引(因此是不可搜索的),但它被存储,以便在执行撷取请求时可以返回,例如getsearch

虽然很方便,但是“_source”字段确实在索引中有不小的存储开销。因此,可以使用如下方式禁用:

curl -XPUT 'http://ip:httpport/tweets?pretty' -H 'Content-Type: application/json' -d'
{
   "mappings": {
          "tweet": {
               "_source": {
                       "enabled": false
                 }
           }
     }
}'

在禁用_source 字段之前请注意:如果_source字段不可用,则不支持以下功能:

  • update,update_by_query,reindex APIs.
  • 高亮
  • 将索引从一个Elasticsearch索引reindex(重索引)到另一个索引的能力,以便更改映射或分析,或将索引升级到新的主要版本。
  • 通过查看索引时使用的原始文档来调试查询或聚合的能力。
  • 潜在的未来可能会自动修复索引损坏的能力。
在禁用_source 字段之前请注意:如果_source字段不可用,则不支持以下功能:•update,update_by_query,reindex APIs.
•高亮
•将索引从一个Elasticsearch索引reindex(重索引)到另一个索引的能力,以便更改映射或分析,或将索引升级到新的主要版本。
•通过查看索引时使用的原始文档来调试查询或聚合的能力。
•潜在的未来可能会自动修复索引损坏的能力。

相关文章

  • ES数据写入调优2

    1 修改事务日志translog参数(存在数据丢失风险) 默认设置下,translog 的持久化策略是每个请求都f...

  • ES数据写入调优1

    禁用Swapping 大多数操作系统都尽可能多地为文件系统缓存使用内存,并切换出未使用的应用程序内存。这可能导致部...

  • [es]ES数据查询调优2

    查询语句优化 查询语句优化的内容包括:查询范围,单次查询数量等。 根据实际业务需求去规划查询范围,查询越少的字段越...

  • Spark性能优化-数据倾斜调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 数据倾斜调优 1...

  • Spark性能优化-开发调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 1. 开发调优 ...

  • Spark性能优化-资源调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 资源调优 num...

  • 如何在es中查询null值

    1、背景 在我们向es中写入数据时,有些时候数据写入到es中的是null,或者没有写入这个字段,那么这个时候在es...

  • pList文件

    pList文件特点: 一,数据写入 写入pList文件的两种方式:手动写入&调方法写入 1,手动写入 2,调用方法...

  • ES-HADOOP配置

    参考使用 ES-Hadoop 将 Spark Streaming 流数据写入 ES

  • JVM调优

    1 调优层次 性能调优包含多个层次,比如:架构调优、代码调优、JVM调优、数据库调优、操作系统调优等。架构调优和代...

网友评论

      本文标题:ES数据写入调优2

      本文链接:https://www.haomeiwen.com/subject/hkdwkltx.html