日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

遷移Elasticsearch數據

本文為您介紹如何使用Catalog將Elasticsearch的離線數據遷移到云數據庫 SelectDB 版

前提條件

  • 已將Elasticsearch集群所有節點IP添加至SelectDB的白名單。具體操作,請參見設置白名單

  • 了解什么是Catalog,以及Catalog的基本操作。更多詳情,請參見湖倉一體

示例環境

本示例為將Elasticsearch的索引product_info中的數據遷移到SelectDB 的數據庫es_db中表test_es2SelectDB中。在實際使用中,請根據您的場景修改對應參數。示例環境如下:

  • 目標庫:es_db

  • 目標表:test_es2SelectDB

  • 源數據:Elasticsearch的索引product_info

源數據準備

源數據內容,您可參見Elasticsearch的快速入門

操作步驟

  1. 連接SelectDB實例。具體操作,請參見連接實例

  2. 創建Elasticsearch的Catalog。

    說明

    Elasticsearch的Catalog創建成功后,系統會在此Catalog下自動生成一個數據庫default_db,Elasticsearch所有的文檔都會一一映射為此庫的表。

    CREATE CATALOG es_catalog PROPERTIES (
        "type"="es",
        "hosts"="http://127.0.0.1:9200",
        "user"="test_user",
        "password"="test_passwd",
        "nodes_discovery"="false"
    );

    參數說明

    參數

    必選

    默認值

    說明

    es_catalog

    Catalog的名稱。您根據自己需求,替換為自己定義的Catalog的名稱。

    type

    Catalog類型。固定填寫es。

    hosts

    Elasticsearch地址,也可以是Elasticsearch的負載均衡地址。

    格式:http://<IP>:<port>

    user

    Elasticsearch賬號。

    password

    Elasticsearch賬號密碼。

    doc_value_scan

    true

    是否開啟通過Elasticsearch或Lucene列式存儲獲取待查詢字段的值的功能。

    說明

    此功能,有助于SelectDB自動探測待查詢字段是否開啟列式存儲,并盡可能從列式存儲中獲取所有字段的值。在只獲取少數列的情況下,可以大幅提升查詢性能。

    • true:開啟。

    • false:關閉。

    keyword_sniff

    true

    是否對Elasticsearch中字符串分詞類型text.fields進行探測,并通過keyword進行匹配。

    • true:按照分詞前的內容整體匹配。

    • false:按照分詞后的內容匹配。

    nodes_discovery

    true

    是否開啟Elasticsearch節點發現。

    • true:SelectDB將從Elasticsearch找到所有可用的相關數據節點并嘗試連接。

    • false:不允許SelectDB訪問Elasticsearch所有可用的相關數據節點,只能通過Elasticsearch地址訪問。

    重要

    阿里云Elasticsearch只能通過域名地址訪問,如果您的數據源是阿里云Elasticsearch,此配置必須設為false。

    mapping_es_id

    false

    是否映射Elasticsearch索引中的主鍵_id。若索引的主鍵由Elasticsearch自動處理,則需要設置為true。

    說明

    Elasticsearch在不指定主鍵_id的情況下, 會給每個文檔分配一個全局唯一的主鍵_id

    • true:進行字段映射,可獲取到該字段值。

    • false:不進行字段映射,無法獲取該字段值。

    like_push_down

    true

    是否將LIKE檢索轉化為通配符(wildcard)模糊檢索并下推到Elasticsearch。

    • true:進行轉化。

      說明
      • 會增加Elasticsearch的CPU占用,并可能在部分場景下降低查詢性能。

      • 適用于不追求精準率只追求召回率的場景。

    • false:不進行轉化。

    include_hidden_index

    false

    是否可以在查詢條件中使用隱藏的索引。

    • false:不可以。

    • true:可以。

  3. 查看Catalog。

    SHOW CATALOGS; --查看CATALOG是否創建成功

    查詢結果如下。

    +--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
    | CatalogId    | CatalogName  | Type     | IsCurrent | CreateTime              | LastUpdateTime      | Comment                |
    +--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
    | 436009309195 | es_catalog | es      |           | 2024-08-06 17:09:08.058 | 2024-07-19 18:04:37 |                        |
    |            0 | internal     | internal | yes       | UNRECORDED              | NULL                | Doris internal catalog |
    +--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
  4. 可選)切換至External Catalog es_catalog目錄下。

    您可以像使用Internal Catalog一樣,對External Catalog es_catalog的數據進行查看和訪問。更多查詢操作,請參見查詢用法

    說明

    目前,云數據庫 SelectDB 版對External Catalog中的數據只支持讀操作。

    SWITCH es_catalog;
  5. 可選)切換內部的catalog internal目錄下。

    如果您沒有執行第4步,跳過此步驟。

    SWITCH internal;
  6. 可選)創建數據。

    如果您已經創建了目標數據庫,可跳過此步驟。

    CREATE database es_db;
  7. 切換至目標數據庫。

    USE es_db;
  8. 創建表。

    如果您已經有了目標表,根據列類型映射檢查目標列類型需與Elasticsearch源數據列類型是否一一對應。

    如果您還沒有目標表,創建表時,目標列類型需與Elasticsearch源數據列類型一一對應。列映射詳情,請參見列類型映射

    CREATE TABLE test_Es2SelectDB
    (
        `annual_rate` varchar(200),
        `describe` text,
        `productName` varchar(200)
    )
    DISTRIBUTED BY HASH(productName) BUCKETS 4
    PROPERTIES("replication_num" = "1");
  9. 遷移數據。

    INSERT INTO test_Es2SelectDB SELECT *  FROM es_catalog.default_db.product_info;
  10. 查看數據導入情況。

    SELECT *  FROM test_Es2SelectDB;

增量數據同步

實際生產環境中,Elasticsearch數據主要分為離線數據和增量數據。對于增量數據同步,您可參考以下方案:

  • 對于日志場景,如果僅需最近一段時間的日志用于數據分析,你可以通過雙寫的方式將日志分別寫到源數據Elasticsearch集群和SelectDB中,直到累積夠要分析的日志數據。

  • 對于搜索類場景,您可以結合SelectDB提供的Unique表模型,通過雙寫方式將增量數據分別寫到源數據Elasticsearch集群和SelectDB中。對于歷史數據,通過離線數據遷移的方式進行遷移。遷移過程中,如果歷史數據與增量數據重復,由于Unique表模型會保證數據的唯一性,重復的數據會自動按照主鍵進行去重。

ELK生態兼容性說明

在日志存儲與分析場景下,SelectDB提供了完整的解決方案來替代ELK:

  • 在日志采集方面,SelectDB提供定制增強的filebeat和logstash插件來高效地收集、處理日志數據。此外,您也可以通過導入數據的方式進行日志采集。具體操作,請參見以下文檔。

  • 在可視化分析方面,SelectDB檢索分析功能可替代開源工具Kibana進行日志分析。此外,SelectDB可以與開源工具可觀測可視化(Grafana)無縫對接,支持您搭建高性能、分布式的運維平臺。