Qlik™ Cloud Data Integration (QCDI) oferă capabilități puternice pentru crearea de canale de date automatizate și scalabile. Unul dintre beneficiile cheie este procesarea incrementală, care procesează doar datele modificate, mai degrabă decât întregul set de date la fiecare execuție. Acest lucru îmbunătățește eficiența, în special în cazul seturilor de date mari.
În timp ce QCDI de bază pentru generare, stocare sau efectuarea de transformări de bază sunt automat incrementale, interogările SQL personalizate reprocesează complet toate datele în mod implicit. Cu o logică complexă, această procesare repetitivă ar putea deveni ineficientă.
De aceea, Qlik™ are plăcerea de a anunța noile capacități ale macrocomenzilor care vă oferă mai mult control asupra procesării incrementale în conductele SQL personalizate. Acum puteți specifica cu ușurință o logică diferită de executat în timpul încărcărilor inițiale față de actualizările incrementale.
Introducerea macrocomenzilor de încărcare inițială și incrementală
Principala îmbunătățire constă în adăugarea a două macrocomenzi – una pentru sarcini inițiale (Q_RUN_INITIAL LOAD) și a doua pentru sarcini incrementale (Q_RUN_INCREMENTAL). Aceste macrocomenzi vă permit să personalizați ce logică se execută în timpul încărcărilor inițiale, atunci când tabelele sunt construite pentru prima dată, față de rulările incrementale care procesează date noi sau modificate.
Pentru a le utiliza, pur și simplu includeți orice logică specifică încărcărilor inițiale sau incrementale în tag-urile macro corespunzătoare. De exemplu:
SELECT * FROM orders
{{#QLIK_FUNC_IF Q_RUN_INCREMENTAL}}
WHERE update_tx > DATEADD(day, -1,GETDATE())
{{/QLIK_FUNC_IF}}
Această interogare ar selecta toate înregistrările de comenzi în timpul încărcărilor inițiale, dar numai înregistrările mai noi din ultima zi pentru actualizările incrementale. Etichetele macro îi spun QCDI să aplice logica de filtrare numai atunci când se execută în mod incremental.
Beneficii ale macrocomenzilor specifice de încărcare
Aceste noi macrocomenzi oferă două avantaje majore:
- Eficiență îmbunătățită prin limitarea volumelor de date incrementale
- Mai multă flexibilitate pentru a adapta logica în mod independent
Cu ajutorul macrocomenzilor, puteți reduce în mod semnificativ datele procesate în mod incremental prin filtrarea sau eșantionarea seturilor de date. QCDI efectuează în continuare detectarea modificărilor pe subansamblu, dar evită reprelucrarea întregului istoric la fiecare rulare.
De asemenea, obțineți mai multă flexibilitate pentru a personaliza logica SQL în mod independent pentru încărcările inițiale și incrementale. De exemplu, este posibil să doriți să:
- Adăugați filtre sau îmbinări numai pentru sarcini incrementale
- Maparea coloanelor sau calcularea valorilor în mod diferit
- Uniți seturile de date numai în timpul încărcărilor inițiale
- Utilizați diferite variante de tabele, cum ar fi istoricul modificărilor
Posibilitățile sunt nelimitate, deoarece puteți personaliza complet SQL în cadrul fiecărei macrocomenzi!
Modele și exemple de încărcare incrementală
Să trecem în revistă câteva exemple de modele care utilizează noile macrocomenzi:
- Limitați-vă doar la modificările recente
Filtrați numai înregistrările noi sau recent modificate, reducând volumul de date incrementale.
SELECT * FROM orders
{{#QLIK_FUNC_IF Q_RUN_INCREMENTAL}}
WHERE update_tx > DATEADD(day, -1, GETDATE())
{{/QLIK_FUNC_IF}}
- Utilizați tabele diferite
Alăturați tabelul istoric pentru încărcările inițiale și, pentru încărcările incrementale, utilizați înregistrările curente folosind marcarea temporală de la/ la.
{{#QLIK_FUNC_IF Q_RUN_INITIAL_LOAD}}
SELECT oh.*, ch.* FROM orders_history oh
JOIN customers_history ch ON oh.CUST_ID = ch.CUST_ID
{{/QLIK_FUNC_IF}}
{{#QLIK_FUNC_IF Q_RUN_INCREMENTAL}}
SELECT o.*, c.* FROM orders o
JOIN customers c ON o.CUST_ID = c.CUST_ID
WHERE o.OrderTimestamp >= DATEADD(DAY, -1, CAST(GETDATE() AS DATE)) AND o.OrderTimestamp < CAST(GETDATE() AS DATE);
{{/QLIK_FUNC_IF}}
- Adăugați coloane derivate
Calculați sau setați valorile în mod diferit la sarcina inițială față de sarcinile incrementale.
SELECT od.ODID, o.ORDERID, od.PRODUCTID, od.QUANTITY, o.ORDERDATE,
{{#QLIK_FUNC_IF Q_RUN_INITIAL_LOAD}} ‘INIT’ as LOADED_BY
{{/QLIK_FUNC_IF}}
{{#QLIK_FUNC_IF Q_RUN_INCREMENTAL}} ‘INCR’ as LOADED_BY {{/QLIK_FUNC_IF}}
FROM ${ORDERS} o
JOIN ${ORDER_DETAILS} od ON o.ORDERID= od.ORDERID
{{#QLIK_FUNC_IF Q_RUN_INCREMENTAL}}
WHERE o.ORDERDATE > DATEADD(hour, -12, CURRENT_TIMESTAMP())
{{/QLIK_FUNC_IF}}
Începeți astăzi cu macrocomenzile!
Noile macrocomenzi vă permit să îmbunătățiți considerabil eficiența și flexibilitatea procesării incrementale în QCDI. Puteți începe să le aplicați încă de astăzi la sarcinile SQL personalizate utilizând cea mai recentă versiune QCDI.
Consultați un tur autoghidat al Qlik™ Cloud Data Integration aici.
Pentru informații despre Qlik™, vă rugăm să vizitați pagina: qlik.com.
Pentru soluții specifice și specializate de la QQinfo, vă rugăm accesați pagina: QQsolutions.
Pentru a fi în contact cu ultimele noutăți în domeniu, soluții inedite explicate, dar și cu perspectivele noastre personale în ceea ce privește lumea managementului, a datelor și a analiticelor, vă recomandăm QQblog-ul !