Tietojen louhinta: Erätuonti vs. koukkupohjainen hankinta

Onko erätuonti tai koukkupohjainen hankinta parhaiten tiedon louhintastrategiallesi?

Kaivostessaan tietoja ulkoisista lähteistä, menetelmä voidaan tunnistaa joko erä- tai koukkupohjaiseksi. Nämä ovat huomattavasti erilaisia ​​ja niillä on omat ansioitensa. Käytämme esimerkkiä yksinkertaistaaksesi tätä hieman. Esimerkiksi tiedot ovat lentotietoja, jotka koskevat lentokoneen sijaintia milloin tahansa. Siksi meillä pitäisi olla seuraavat keskeiset tiedot:

  1. Liiketila (paikallaan tai liikkeessä)
  2. leveysaste
  3. pituusaste
  4. Korkeus
  5. Lähtö (nykyisen tai seuraavan lennon)
  6. Kohde (nykyinen tai seuraava lento)
  7. Aika (millisekunnin tarkkuus)

Tässä esimerkissä meidän pitäisi kyetä ekstrapoloimaan suurin osa lentokoneeseen liittyvistä tiedoista käyttämällä yllä mainittuja tietoja. Analysoidaan kaksi tietojen tuontitapaa.

Erätuonti

Erätuonti on aikataulupohjaista, ja se “kerää” tietoja lähteestä toistuvalla aikavälillä. Yllä olevan lentotietojen esimerkin avulla tämä voitaisiin toteuttaa seuraavasti:

  1. Tunneittain erä tuo kaikki tämän lentokoneen lentotiedot viimeisestä oikeusasteesta lähtien. Kutsumme tätä eräaikana, joka voi olla 10: 00: 00.000 (klo 10.00, millisekunnin tarkkuudella).
  2. Tämä palvelin käsittelee nämä tiedot (tuotu onnistuneesti).
  3. Päivitämme eräajan viimeisimmän tietueen ajankohtaan. Siksi, vaikka erän aika vaiheessa 1 oli 10: 00.000, jos viimeisin ennätys oli 9: 59: 52,915, tästä tulee uusi eräaika.

Miksi toteutamme eräajoituksen tällä tavalla?

  1. Päivitämme eräajan, koska tuntierä voi epäonnistua. Tämä antaa meille luottamuksen siihen, että vaikka erä epäonnistuu, tuomme seuraavassa tapauksessa kaikki tiedot viimeisestä erästä lähtien.
  2. Säästämme eräajan myös viimeisimmän lentotietueen ajankohtaan, koska palvelinten välinen pieni aikaero saattaa johtaa siihen, että joitain tietoja ei tuoda seuraavassa esiintymään. Selittää tämä toisin; Jos palvelimemme on viisi sekuntia edellä lentotietojen tarjoamista edeltävä ja meidän piti säästää viimeinen eräaika palvelimemme aikana, seuraavan tuonnin aikana menetämme nuo 5 sekunnin tiedot. Sen sijaan käytämme lentotietojen viimeksi tallennettua aikaa varmistaaksemme, että erät kaappaavat kaikki tiedot.

Koukkupohjainen tuonti

Koukkupohjainen tuonti on puhdas reaaliaikainen menetelmä tietojen hankkimiseen. Laskennan ”koukku” tarkoittaa prosessia, jossa ulkoinen järjestelmä (kuten lentotietoratkaisu) lähettää palvelimellesi viestin (sisältää tietoja), kun tapahtuma tapahtuu. Esimerkki koukkupohjaisesta tuonnista voidaan suorittaa seuraavasti:

  1. Uusi tietue tallennetaan lentotietopalvelimelle kaikilla tiedoilla (liikkumistila, leveysaste, pituusaste, korkeus jne.).
  2. Käynnistetään “koukku”, joka lähettää tiedot palvelimellesi automaattisesti.
  3. Palvelimesi käsittelee nämä tiedot (tuotu onnistuneesti).

johtopäätös

Vaikka koukkupohjaiset tuontimenetelmät ovat parempia "reaaliaikaisesta" näkökulmasta, ne tarjoavat kaksi ensisijaista riskiä:

  1. Sinun on palotettava palvelimen käyttöoikeudet ulkoisesta sijainnista. Tämä aiheuttaa kyberturvallisuusriskin, vaikka se olisi tehty oikein.
  2. Jos koukun tietoja ei toimiteta (esimerkiksi jos palvelimellesi ei ollut tavoitettavissa), tietojen hakeminen on uskomattoman vaivalloista riippumatta ulkoisen alustan eheydestä.

Meillä on tapana käyttää erätuontia aina kun mahdollista välttääksesi tämän, käyttämällä lyhyempiä "aikavälejä", kun se tarvitaan ajan tasalla oleviin tietoihin.