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
Perustason Tietojen Päivitykset ja Poistot
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.
Kiitos palautteestasi!