Pràctica#1: Filtratge Regular i Agrupació & Agregació utilitzant la taula orders com a exemple per externalitzar dades amb SPL i accelerar operacions regulars de filtratge i d'agrupació i agregació
Aquest article descriu pas a pas com exportar una taula de base de dades a fitxers d'emmagatzematge de SPL i com aprofitar formats columnar i per columnes compostes per millorar el rendiment de consultes que filtren i agreguen dades. També inclou recomanacions pràctiques per aplicar processament per cursor, filtratge en cursor i paral·lelisme.
Preparació i exportació amb l'eina ETL de SPL
Obre l'eina ETL de SPL des de la ruta d'instal·lació de SPL i crea un nou procés ETL. Connecta la font de dades i arrossega la taula orders a l'àrea de treball. Edita la taula per configurar les opcions d'exportació i a la secció de ruta de dades indica el directori on es desaran els fitxers exportats. Crea un fitxer SPLX o exporta directament a un fitxer binari BTX. Desa el procés ETL amb un nom descriptiu com Q1.etl i executa l'exportació.
Exemple de consulta SQL per agrupar i agregar
select employee_id, count(*) as order_count, sum(shipping_fee) as total, avg(shipping_fee) as average, max(order_date) as latest_order_date from orders where order_date between 2024-01-01 and 2024-10-31 and shipper_id <> 1 and shipping_fee > 10 group by employee_id;
A la base de dades MySQL aquest exemple va trigar aproximadament 11 segons a executar-se a les proves descrites.
Enfocament SPL amb cursor i filtratge
Quan la taula orders és massa gran per llegir-se totalment en memòria, SPL pot utilitzar un cursor per llegir i processar per lots. El cursor recupera només els camps necessaris per avaluar condicions, reduint la creació d'objectes i l'ús de memòria. Utilitza la funció select per aplicar el filtratge equivalent a WHERE en SQL. Per agrupar, utilitza la sintaxi d'agrupament de SPL on la part anterior al punt i coma és la clau d'agrupament i la part posterior conté les expressions agregades. A diferència de SQL, SPL combina de manera nativa clau i valors agregats en el resultat.
Temps orientatius: el script SPL inicial amb lectura per cursor i format BTX va trigar al voltant de 2.2 segons a la prova, demostrant ja una millora davant la consulta directa a MySQL.
Ús de format columnar compost CTX
El format CTX emmagatzema les dades per columnes i és especialment útil quan la taula té un gran nombre de camps però les consultes accedeixen a pocs d'ells. Crear un CTX requereix definir l'estructura de dades, per la qual cosa el procés és una mica més detallat que per a un BTX. Executant el mateix processament sobre un CTX el temps va baixar a 1.9 segons a la prova.
Filtratge en cursor per minimitzar lectures
Adjunta condicions de filtratge al cursor perquè primer es llegeixin únicament els camps que intervenen en les condicions, i només si aquestes es compleixen s'obtinguin els camps addicionals necessaris per construir el registre. Això redueix lectures de disc i la creació d'objectes innecessaris. A la prova l'algoritme de filtratge en cursor sobre CTX va baixar el temps a 1.8 segons.
Paral·lelisme fàcil en SPL
SPL facilita el processament paral·lel indicant el nombre de fils. Ajusta el nombre de fils als nuclis CPU disponibles, per exemple 8. Afegint l'opció de paral·lelisme al cursor per a un BTX el temps va baixar a 0.6 segons i per a CTX a 0.5 segons a les proves realitzades.
Resum comparatiu de rendiment en segons
MySQL consulta directa: 11 segons
SPL amb BTX i cursor seqüencial: 2.2 segons
SPL amb CTX i cursor seqüencial: 1.9 segons
SPL amb CTX i cursor amb filtratge: 1.8 segons
SPL amb paral·lelisme en BTX: 0.6 segons
SPL amb paral·lelisme en CTX: 0.5 segons
Observacions pràctiques
El emmagatzematge SPL i l'exportació de dades són especialment adequats per a escenaris amb dades històriques estàtiques que es consulten freqüentment. El format CTX és idoni quan les consultes utilitzen poques columnes de taules amples. El filtratge en cursor i el paral·lelisme són dues tècniques claus per minimitzar I O i aprofitar la CPU.
Exercicis suggerits
1 Agrupar per client i calcular el total de freight per a cada client aplicant una condició que combini order_date i employee_id
2 Exportar una taula gran d'una base de dades coneguda i generar un BTX i un CTX. Executar les mateixes agregacions utilitzant tots dos formats i comparar temps i ús de recursos
Sobre Q2BSTUDIO
Q2BSTUDIO és una empresa de desenvolupament de programari especialitzada en aplicacions a mida i programari a mida. Oferim solucions d'intel·ligència artificial i ia per a empreses, desenvolupem agents IA i apliquem Power BI i serveis intel·ligència de negoci per transformar dades en decisions. Els nostres serveis inclouen ciberseguretat, serveis cloud aws i azure i consultoria per a projectes escalars. Som experts en integració de models d'intel·ligència artificial, desplegament segur al núvol i creació d'aplicacions a mida que incorporen agents IA per automatitzar processos.
Serveis destacats de Q2BSTUDIO
Aplicacions a mida i programari a mida adaptats a les necessitats operatives. Implementació d'intel·ligència artificial, ia per a empreses i agents IA que milloren productivitat. Solucions de ciberseguretat per protegir dades crítiques. Serveis cloud aws i azure per desplegar aplicacions i models de manera escalable. Serveis intel·ligència de negoci i dashboards amb Power BI per visualització i anàlisi.
Paraules clau per posicionament
aplicacions a mida, programari a mida, intel·ligència artificial, ciberseguretat, serveis cloud aws i azure, serveis intel·ligència de negoci, ia per a empreses, agents IA, power bi
Recursos i llicència
SPL és open source i el codi font està disponible a GitHub al repositori oficial d'esProc. Pots descarregar una versió de prova al web oficial i seguir els passos descrits per exportar taules i provar els diferents formats d'emmagatzematge.
Contacte
Si desitges que Q2BSTUDIO t'ajudi a externalitzar dades, optimitzar consultes o desenvolupar aplicacions a mida que integrin intel·ligència artificial i ciberseguretat, contacta amb el nostre equip per a una consultoria inicial i una proposta de projecte personalitzada




