Рекомендации по синхронизации mysql реляционных баз данных с поиском elasti c - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть пользовательское поле, которое зависит от множества других полей, оно имеет несколько внешних ключей к другой таблице и имеет отношение многие ко многим, используя сводную таблицу, и отношения один ко многим.

API как вложенная JSON структура. Реляционные данные выглядят так для конкретного пользователя.

user = {
  id : _212dasd,
  name: "alphabeta",
  key1_id = 23,
  key1 : {
     id: 23,
     name: "new name"
  },
  key2 : [
      {
         id: _asdak61526,
         key2_id : 2
         user_id : _212dasd,

      },
      {
         id: _asdak6152a,
         key2_id : 3
         user_id : _212dasd
      }
  ],
  key3: {
     name : "gama",
     key_3_nested : {
       name : "abc",
       key_3_nested_levle2 : {
            name : "xyz",
       }
     }
   }
 }

Как можно синхронизировать mysql реляционные данные с поиском elasti c, так как большинство прочитанных будет go с elasti c поиск, я использую log-sta sh для синхронизации.

input {
  jdbc { 
    jdbc_connection_string => "jdbc:mysql://localhost:3306/database_name"
    # The user we wish to execute our statement as
    jdbc_user => "root"
    jdbc_password => "root"
    # The path to our downloaded jdbc driver
    jdbc_driver_library => "/~/mysql-connector-java-5.1.17.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    # our query
    statement => "SELECT * FROM users INNER JOIN table2 ON table2.user_id = users.id" // just a demo query
    schedule => "* * * * * *"
    }
  }
output {
  elasticsearch {
    document_id=> "%{sk_id}.%{user_id}"
    document_type => "doc"
    index => "db_prd"
    hosts => ["http://localhost:9200"]
  }
  stdout{
    codec => json_lines 
  }
}

Вопрос: Как мне поддерживать отношение, хорошая идея - создание запроса на множественное объединение, так как каждый раз он создает множественное большое объединение для большого количества пользовательских данных и их неоптимизированной структуры. Для 10000 пользователей и присоединение к нескольким таблицам замедлится синхронизация c. Будет ли он синхронизировать c каждый индекс или только один?

Как получить вложенную структуру API из поиска elasti c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...