Skip to main content

📊 Disseny de Dades en StarRocks: PATSTAT & KRAKEN

Aquest document detalla l'arquitectura lògica de les bases de dades allotjades al clúster StarRocks, optimitzades per a l'explotació mitjançant DiscoveryPlus.

1. Model de Dades: PATSTAT (EPO)

PATSTAT és el nucli del sistema, amb unes 50 taules que mantenen una estructura relacional clàssica però amb un volum massiu.

  • Identificador Clau: El camp appln_id (o appln_num) actua com a eix vertebrador per a la majoria de joins entre taules (aplicacions, inventors, títols, abstracts).
  • Estratègia StarRocks: Tot i ser dades relacionals, StarRocks les emmagatzema de forma columnar, cosa que permet escanejar milions de patents en segons filtrant només pels camps necessaris.
  • Segmentació: Les dades es divideixen en fragments (tablets) distribuïts entre els 4 BEs, permetent que cada consulta aprofiti els 32 nuclis totals del clúster.

2. Optimització: Materialized Views (MVs)

Per garantir que DiscoveryPlus tingui un temps de resposta sub-segon, s'han creat Vistes Materialitzades a mida.

  • Propòsit: Pre-calcular les unions (joins) més costoses entre les taules de patents i agregar dades d'ús freqüent.
  • Actualització: Es sincronitzen automàticament quan s'actualitzen les taules base o durant la càrrega semestral de dades.
  • Capa d'Abstracció: DiscoveryPlus ataca directament aquestes MVs, reduint la càrrega computacional de generar resultats complexos en temps real.

3. Ingesta i Sincronització

El sistema utilitza dues estratègies diferenciades segons la volatilitat de les dades:

Base de DadesMètode d'IngestaFreqüènciaEina
PATSTATBulk Load (Batch)Semestralcurl + Stream Load
KRAKENCDC (Change Data Capture)Temps RealApache Flink

4. Configuració de Replicació i Seguretat

  • Factor de Replicació: 3 (Garanteix que PATSTAT estigui disponible encara que fallin 2 Back-ends).
  • Interfície de Consulta: SQL estàndard (compatible amb el protocol MySQL), la qual cosa facilita la connexió des de DiscoveryPlus o scripts de Python.

🛠️ Implementació Tècnica de StarRocks (PATSTAT)

Aquest document detalla les decisions tècniques preses en la creació de les taules de la base de dades PATSTAT.

1. Estratègia d'Emmagatzematge Columnar

Totes les taules utilitzen l'engine OLAP de StarRocks amb les següents propietats globals:

  • Compressió: LZ4 (Optimitzat per a velocitat de lectura).
  • Replicació: Factor 3 (Alta disponibilitat de dades).
  • Evolució d'Esquema: fast_schema_evolution = true (Permet canvis en les taules de patents sense bloquejos).

2. Tipologia de Taules segons el Model

S'han definit dos tipus de taules segons la natura de les dades:

Tipus de TaulaTaules d'ExempleMotiu
Primary Keyadreces, adreces2Permet actualitzacions ràpides i garanteix unicitat per person_id.
Duplicate Keytls901_ipc, tls902_ipc_nace2Optimitzat per a la ingesta massiva de dades històriques de l'EPO.

3. Distribució i Particionament

  • Hashing: Les taules de persones es distribueixen per HASH(person_id) per minimitzar el trànsit de xarxa durant els joins.
  • Random: Les taules auxiliars utilitzen DISTRIBUTED BY RANDOM per garantir un repartiment equitatiu entre els 4 nodes Back-end.
  • Persistent Index: Activat a les taules Primary Key per accelerar les cerques en els 10TB de dades.