Introducció

En aquest tema, explorarem dos conceptes importants en la gestió d'índexs a Elasticsearch: els àlies i la reindexació. Els àlies permeten una major flexibilitat en la gestió dels índexs, mentre que la reindexació és una operació crucial per a la migració de dades i l'actualització d'esquemes.

Àlies

Què és un Àlies?

Un àlies és un nom alternatiu per a un o més índexs. Els àlies permeten referenciar índexs sense necessitat de conèixer el seu nom exacte, facilitant així la gestió i l'actualització dels índexs.

Beneficis dels Àlies

  • Flexibilitat: Permeten canviar l'índex al qual apunta un àlies sense afectar les aplicacions que utilitzen aquest àlies.
  • Gestió de Versions: Faciliten la gestió de versions d'índexs, permetent canviar fàcilment entre diferents versions.
  • Operacions Atomiques: Les operacions de canvi d'àlies són atòmiques, garantint la consistència de les dades.

Creació d'un Àlies

Per crear un àlies, utilitzem l'API _aliases d'Elasticsearch. A continuació es mostra un exemple de com crear un àlies per a un índex existent:

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "index_v1",
        "alias": "current_index"
      }
    }
  ]
}

Exemple Pràctic

Suposem que tenim un índex anomenat products_v1 i volem crear un àlies anomenat products_current:

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "products_v1",
        "alias": "products_current"
      }
    }
  ]
}

Canvi d'Àlies

Per canviar l'índex al qual apunta un àlies, primer hem d'eliminar l'àlies existent i després afegir el nou:

POST /_aliases
{
  "actions": [
    {
      "remove": {
        "index": "products_v1",
        "alias": "products_current"
      }
    },
    {
      "add": {
        "index": "products_v2",
        "alias": "products_current"
      }
    }
  ]
}

Reindexació

Què és la Reindexació?

La reindexació és el procés de copiar dades d'un índex a un altre. És útil quan necessitem actualitzar l'esquema d'un índex o migrar dades a un nou índex.

Beneficis de la Reindexació

  • Actualització d'Esquemes: Permet actualitzar l'esquema d'un índex sense perdre dades.
  • Migració de Dades: Facilita la migració de dades entre índexs.
  • Optimització: Permet optimitzar l'estructura de l'índex per a millorar el rendiment.

Reindexació Bàsica

Per reindexar dades, utilitzem l'API _reindex d'Elasticsearch. A continuació es mostra un exemple bàsic de reindexació:

POST /_reindex
{
  "source": {
    "index": "old_index"
  },
  "dest": {
    "index": "new_index"
  }
}

Exemple Pràctic

Suposem que tenim un índex anomenat products_v1 i volem reindexar les dades a un nou índex anomenat products_v2:

POST /_reindex
{
  "source": {
    "index": "products_v1"
  },
  "dest": {
    "index": "products_v2"
  }
}

Reindexació amb Transformació

Podem aplicar transformacions a les dades durant la reindexació utilitzant l'API _reindex amb un script:

POST /_reindex
{
  "source": {
    "index": "products_v1"
  },
  "dest": {
    "index": "products_v2"
  },
  "script": {
    "source": "ctx._source.price = ctx._source.price * 1.1",
    "lang": "painless"
  }
}

Aquest script augmenta el preu de cada producte en un 10% durant la reindexació.

Exercicis Pràctics

Exercici 1: Creació d'un Àlies

  1. Crea un índex anomenat test_index_v1.
  2. Crea un àlies anomenat test_current que apunti a test_index_v1.

Solució

PUT /test_index_v1
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  }
}

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "test_index_v1",
        "alias": "test_current"
      }
    }
  ]
}

Exercici 2: Reindexació de Dades

  1. Crea un índex anomenat test_index_v2.
  2. Reindexa les dades de test_index_v1 a test_index_v2.

Solució

PUT /test_index_v2
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  }
}

POST /_reindex
{
  "source": {
    "index": "test_index_v1"
  },
  "dest": {
    "index": "test_index_v2"
  }
}

Conclusió

En aquesta secció, hem après sobre els àlies i la reindexació a Elasticsearch. Els àlies proporcionen una manera flexible de gestionar els índexs, mentre que la reindexació és essencial per a la migració de dades i l'actualització d'esquemes. Aquests conceptes són fonamentals per a la gestió eficient dels índexs a Elasticsearch.

© Copyright 2024. Tots els drets reservats