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.