Perustason Tietojen Päivitykset ja Poistot
Pyyhkäise näyttääksesi valikon
Tavallisissa Data Lake -ratkaisuissa yksittäisen rivin päivittäminen tai poistaminen on lähes mahdotonta ilman koko tietoaineiston uudelleenkirjoittamista. Koska Delta Lake käyttää transaktiolokia, se tukee tavallisia SQL:n UPDATE- ja DELETE-komentoja, mahdollistaen tarkat muutokset tauluihisi.
Edellisessä osiossa keskityit tietojen lukemiseen ja yhteenvedon tekemiseen. Data ei kuitenkaan ole koskaan täysin staattista — saatat huomata, että osa timanttiaineiston hinnoista on virheellisiä tai tietty "cut"-tyyppi täytyy poistaa raporteista.
Koska diamonds-taulu on Delta-taulu, voit muokata sitä kuten perinteistä tietokantaa.
1. Tietueiden päivittäminen
UPDATE-komennolla voit muuttaa arvoja tietyissä riveissä, jotka täyttävät ehdon. Esimerkiksi, jos kaikille "Fair"-leikkauksen timanteille annetaan 10 % hinnankorotus:
UPDATE workspace.workshop.diamonds
SET price = price * 1.1
WHERE cut = 'Fair'
- SET — Määrittää sarakkeelle uuden arvon
- WHERE — Tärkeä. Ilman
WHERE-ehtoa päivittäisit hinnan kaikille timanteille koko taulussa
2. Tietueiden poistaminen
DELETE-komento poistaa rivit taulusta pysyvästi. Käytä tätä, kun data ei ole enää relevanttia tai se on tuotu vahingossa.
DELETE FROM workspace.workshop.diamonds
WHERE carat > 5.0
Tämä komento tunnistaa kaikki yli 5 karaatin timantit ja poistaa ne taulun aktiivisesta versiosta.
3. Muutosten varmistaminen
Päivityksen tai poiston jälkeen muutos kannattaa aina varmistaa yksinkertaisella SELECT count -kyselyllä, jotta operaatio toimi odotetusti.
-- Verify how many 'Fair' diamonds are left (count should be the same, but prices changed)
SELECT count(*) FROM workspace.workshop.diamonds WHERE cut = 'Fair'
4. Delta-päivitysten turvallisuus
Kun suoritat DELETE- tai UPDATE-komennon, Delta Lake ei poista dataa vanhoista tiedostoista suoraan. Sen sijaan se noudattaa kolmiportaista prosessia:
- Merkitsee vanhat tiedostot "epäkelvoiksi"
- Kirjoittaa uudet tiedostot, jotka sisältävät päivitetyn datan
- Tallentaa muutoksen Transaction Logiin
Tämän vuoksi Time Travel toimii edelleen poiston jälkeenkin — vanha data säilyy taulun tiedostojen aiemmissa versioissa, kunnes historia poistetaan manuaalisesti.
5. Paras käytäntö: Testaus SELECT-komennolla
Ennen kuin suoritat DELETE- tai UPDATE-komennon, testaa aina suodatin ensin SELECT-komennolla.
- Sen sijaan että:
DELETE FROM diamonds WHERE color = 'J' - Kokeile ensin:
SELECT * FROM diamonds WHERE color = 'J'
Jos SELECT-tulokset näyttävät täsmälleen ne rivit, jotka haluat poistaa, voit turvallisesti jatkaa DELETE-komennolla.
1. Mitä tapahtuu, jos suoritat UPDATE-komennon ilman WHERE-ehtoa?
2. Poistaako DELETE-komennon suorittaminen Delta-taulussa tiedot välittömästi taustalla olevasta pilvitallennuksesta pysyvästi?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme