lakeFS vs DVC: Version Control ഒരു ഫയൽസിസ്റ്റമാകാൻ ആഗ്രഹിക്കുന്നു
ഡാറ്റാ വേർഷൻ കൺട്രോളിനെക്കുറിച്ച് പറയുമ്പോൾ എല്ലാവരും ഗിറ്റ് (Git) എല്ലാത്തിനും ഉണ്ട് എന്ന രീതിയിൽ തലയാട്ടും. എന്നാൽ ഒരു ടീമിന്റെ പെറ്റബൈറ്റ് ഡാറ്റ ഉപയോഗിക്കുമ്പോൾ ഗിറ്റ് കോഡിനുള്ള ഗിറ്റ് മാത്രമാണെന്ന് മനസ്സിലാകും. S3 ബക്കറ്റിനെ ഒരു റിപ്പോസിറ്ററിയായി കണക്കാക്കുക എന്ന് പറയുന്നത്, സിംഫണി വായിക്കുന്ന ഒരാളോട് കാസൂ ഉപയോഗിക്കാൻ പറയുന്നതുപോലെയാണ്. കാരണം, കാസൂ ഒരു കാറ്റിൽനിന്നുള്ള ശബ്ദമുണ്ടാക്കുന്ന ഉപകരണം മാത്രമാണ്.
ഇതൊരു മുദ്രാവാക്യം പങ്കിടുന്ന രണ്ട് ലോകവീക്ഷണങ്ങളുടെ കഥയാണ്: lakeFS vs DVC. ഡാറ്റ, മോഡലുകൾ, പരീക്ഷണങ്ങൾ എന്നിവ സാധാരണയായി നഷ്ടപ്പെടുന്നിടത്ത് വിവേകം വാഗ്ദാനം ചെയ്യുന്നു. പക്ഷേ, അവ പ്രശ്നത്തെ വ്യത്യസ്ത ദിശകളിൽ നിന്ന് ആക്രമിക്കുന്നു. DVC ഒരു ഡെവലപ്പർ-ആദ്യ ടൂൾകിറ്റാണ്. ഇത് നിങ്ങളുടെ റിപ്പോസിറ്ററിയോടൊപ്പം ചേർന്ന് പ്രവർത്തിക്കുന്നു. lakeFS ഒരു സ്റ്റോറേജ്-നേറ്റീവ് ലെയറാണ്. ഇത് നിങ്ങളുടെ ഒബ്ജക്റ്റ് സ്റ്റോറിനെ ബ്രാഞ്ചുകൾ, കമ്മിറ്റുകൾ, മെർജുകൾ എന്നിവയുള്ള ഒരു വേർഷൻ ഫയൽസിസ്റ്റമാക്കി മാറ്റുന്നു. ഒരേ ഈണം, വ്യത്യസ്ത രീതിയിൽ.
നിങ്ങളൊരു വിധി കേൾക്കാനാണ് ഇവിടെ എത്തിയതെങ്കിൽ: നിങ്ങൾ ഏത് പക്ഷത്താണെന്ന് നിങ്ങൾക്ക് ഇതിനോടകം അറിയാം. വലിയ ഫയലുകളും മോഡൽ ചെക്ക്പോയിന്റുകളും റീപ്രൊഡ്യൂസിബിലിറ്റിയോടെ മാറ്റുന്നതിലാണ് നിങ്ങളുടെ പ്രശ്നമെങ്കിൽ, DVC വളരെ മികച്ച എക്സ്റ്റൻഷൻ കോർഡ് പോലെ തോന്നും. നിങ്ങളുടെ പ്രശ്നം മൾട്ടി-ടീം ഡാറ്റാ ഗവേണൻസ്, ഐസൊലേഷൻ, ഡാറ്റാ ലേക്കിന്റെ റീപ്രൊഡ്യൂസിബിൾ റീഡ്സ് എന്നിവയാണെങ്കിൽ, lakeFS വീടിന്റെ സർക്യൂട്ട് ബ്രേക്കറുകൾ സ്ഥാപിക്കുന്നത് പോലെ തോന്നും.
അതെ, നിങ്ങൾക്ക് രണ്ടും ഉപയോഗിക്കാം. അതൊരു ഒഴിഞ്ഞുമാറൽ അല്ല. ഡാറ്റാ വർക്ക് ഒരേ ടീ-ഷർട്ട് ധരിച്ച പല ജോലികൾ ആണെന്നുള്ള ഒരു സമ്മതമാണിത്.
സ്ഥലത്തിന്റെ കിടപ്പ്: DVC യും lakeFS ഉം എന്താണ് ചെയ്യുന്നത്
- DVC (Data Version Control): Git-ന്റെ അടുത്താണ് ജീവിക്കുന്നത്, അതിന്റെ ഉള്ളിലല്ല. നിങ്ങൾ Git-ൽ പോയിന്ററുകൾ (ചെറിയ മെറ്റാ ഫയലുകൾ) പതിപ്പ് നൽകുകയും S3, GCS, Azure, SSH അല്ലെങ്കിൽ ഒരു ലോക്കൽ കാഷെ പോലുള്ള ഒരു വിദൂര സ്ഥലത്ത് വലിയ ആർട്ടിഫാക്റ്റുകൾ (ഡാറ്റാ സെറ്റുകൾ, മോഡലുകൾ, ചിത്രങ്ങൾ) സംഭരിക്കുകയും ചെയ്യുന്നു. നിങ്ങൾക്ക് CLI-ഡ്രൈവൺ പൈപ്പ്ലൈനുകൾ, റീപ്രൊഡ്യൂസിബിലിറ്റിക്ക്
dvc.lock, പരീക്ഷണ ട്രാക്കിംഗ്, സമന്വയിപ്പിക്കാൻ dvc push/pull എന്നിവ ലഭിക്കും.
- lakeFS: നിങ്ങളുടെ ഒബ്ജക്റ്റ് സ്റ്റോറിന് (S3, GCS, Azure Blob) മുന്നിൽ ഇരിക്കുന്നു, ബ്രാഞ്ചുകളും കമ്മിറ്റുകളും സ്റ്റോറേജ് സ്പേസിന്റെ പ്രധാന ഫീച്ചറാക്കുന്നു. റീഡുകളും റൈറ്റുകളും ഒറ്റപ്പെട്ട ബ്രാഞ്ചുകളെ കാണുന്നു. നിങ്ങൾക്ക് “പ്രൊഡക്ഷനിൽ” നിന്ന് ഒരു ബ്രാഞ്ച് ഉണ്ടാക്കാനും, ട്രാൻസ്ഫോർമേഷനുകൾ പ്രവർത്തിപ്പിക്കാനും, ടെറാബൈറ്റുകൾ പകർത്താതെ തന്നെ തിരികെ മെർജ് ചെയ്യാനും കഴിയും. ഇത് നിങ്ങളുടെ ഡാറ്റാ ലേക്കിനുള്ള Git-ന്റെ സെമാന്റിക്സാണ്.
മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ: DVC ഡെവലപ്പർ വർക്ക്ഫ്ലോയിലേക്ക് ഡാറ്റാ മാനേജ്മെന്റ് ഒട്ടിക്കുന്നു; lakeFS ഡാറ്റാ ലെയറിലേക്ക് വർക്ക്ഫ്ലോ സെമാന്റിക്സുകൾ കൊത്തിവയ്ക്കുന്നു.
പ്രധാന വ്യത്യാസം (എന്തുകൊണ്ട് ഇത് പ്രധാനമാണ്)
DVC വലിയ ഡാറ്റയെ നിങ്ങളുടെ കോഡ്ബേസിന്റെ ഒരു എക്സ്റ്റൻഷനായി കണക്കാക്കുന്നു. എല്ലാം Git റിപ്പോസിറ്ററിയിൽ നിന്നാണ് ആരംഭിക്കുന്നത്: നിങ്ങൾ *.dvc ഫയലുകൾ കമ്മിറ്റ് ചെയ്യുന്നു, ഡിപെൻഡൻസികൾ ലോക്ക് ചെയ്യുന്നു, പൈപ്പ്ലൈനുകൾ ഓർക്കെസ്ട്രേറ്റ് ചെയ്യുന്നു. ML പരീക്ഷണങ്ങൾക്ക് ഇത് മികച്ചതാണ്.
lakeFS അതിനെ മറിച്ചിടുന്നു: ഡാറ്റാ ലേക്ക് ആണ് സത്യത്തിന്റെ ഉറവിടം. ബ്രാഞ്ചുകൾ വെറും രൂപകങ്ങളല്ല, ഒരേ അടിയിലുള്ള ഒബ്ജക്റ്റുകൾക്ക് മുകളിലുള്ള നെയിംസ്പെയ്സുകളാണ്. അതിനർത്ഥം നിങ്ങൾക്ക്:
- സെക്കൻഡുകൾക്കുള്ളിൽ 200 TB ഡാറ്റാ സെറ്റിന്റെ ഒരു
feature/try-new-schema ബ്രാഞ്ച് സ്പിൻ അപ്പ് ചെയ്യാൻ കഴിയും.
- Spark/Presto/Trino ആ ബ്രാഞ്ചിൽ പ്രവർത്തിപ്പിക്കുക, കാരണം അത് യഥാർത്ഥമാണ്.
- മുഴുവൻ ലേക്കും മാറ്റിയെഴുതാതെ മെർജ് ചെയ്യുക (അല്ലെങ്കിൽ ഉപേക്ഷിക്കുക).
നിങ്ങൾക്ക് Git ഹുക്കുകൾ ഉപയോഗിച്ച് ഇത് അനുകരിക്കാൻ കഴിയില്ല.
lakeFS vs DVC: മാർക്കറ്റിംഗ് ഇല്ലാത്ത ഉപയോഗ കേസുകൾ
DVC എപ്പോൾ വിജയിക്കുന്നു
- മോഡൽ-സെൻട്രിക് ടീമുകൾ: നിങ്ങൾക്ക് കോഡ്, ഡാറ്റാ സ്നാപ്പ്ഷോട്ടുകൾ, പരീക്ഷണങ്ങൾ എന്നിവ റീപ്രൊഡ്യൂസ് ചെയ്യാനും പങ്കിടാനും കഴിയണം. DVC-യുടെ പരീക്ഷണ ട്രാക്കിംഗും
dvc repro പൈപ്പ്ലൈനുകളും മികച്ചതാണ്.
- സിംഗിൾ-റെപ്പോ ഡിസിപ്ലിൻ: നിങ്ങളുടെ ഓർഗനൈസേഷൻ Git-ലാണ് ജീവിക്കുന്നത്. നിങ്ങൾക്ക് ഒരു സ്റ്റോറേജ് അബ്സ്ട്രാക്ഷൻ കണ്ടുപിടിക്കാതെ “ഡാറ്റയെ കോഡായി” ഉപയോഗിക്കണം. DVC പരിചിതമാണ്,
git add data.dvc, പൂർത്തിയായി.
- ബജറ്റും ലാളിത്യവും: പ്രവർത്തിപ്പിക്കാൻ ഇൻഫ്രാ ലെയറില്ല. DVC ഒരു സാധാരണ S3 ബക്കറ്റും പെർമിഷൻ പോളിസിയും ഉപയോഗിച്ച് പ്രവർത്തിക്കും. CLI വളരെ ലളിതമാണ്. ലോക്കൽ-ഫസ്റ്റ് ഒരു ഫീച്ചറാണ്.
lakeFS എപ്പോൾ വിജയിക്കുന്നു
- വലിയ തോതിലുള്ള ടീം ഐസൊലേഷൻ: ഒരേ ലേക്കിൽ ഒന്നിലധികം ടീമുകൾ സുരക്ഷിതമായി എഴുതാനും വായിക്കാനും പരസ്പരം ഇടപെടാതെ പ്രവർത്തിപ്പിക്കാനും നിങ്ങൾക്ക് ആവശ്യമുണ്ട്. ബ്രാഞ്ച് അടിസ്ഥാനമാക്കിയുള്ള ഐസൊലേഷനാണ് ഇതിന്റെ പ്രധാന ലക്ഷ്യം.
- ഗവേണൻസും ഓഡിറ്റും: കമ്മിറ്റ് ഹിസ്റ്ററി, റീപ്രൊഡ്യൂസിബിൾ സ്നാപ്പ്ഷോട്ടുകൾ, സ്റ്റോറേജ് അതിർത്തിയിലെ പോളിസി ഹുക്കുകൾ. നിങ്ങൾക്ക് പ്രധാനപ്പെട്ട നിയമങ്ങൾ നടപ്പിലാക്കാൻ കഴിയും.
- വലിയ എഞ്ചിനുകൾ, വലിയ പട്ടികകൾ: Spark, Hive, Presto, Trino, Snowflake എക്സ്റ്റേണൽ ടേബിളുകൾ - ഒബ്ജക്റ്റ് സ്റ്റോറുകളുമായി സംസാരിക്കുന്ന ടൂളുകൾ. lakeFS URL തലത്തിൽ സംയോജിപ്പിക്കുന്നു; നിങ്ങളുടെ കമ്പ്യൂട്ട് സ്റ്റാക്കിന് പുതിയ കാര്യങ്ങൾ പഠിക്കേണ്ടതില്ല.
നിങ്ങൾ രണ്ടും ഉപയോഗിക്കുമ്പോൾ (ബുദ്ധിപരമായി തോന്നുന്നു)
- ഒരു റിപ്പോയുമായി ബന്ധിപ്പിച്ച മോഡൽ ആർട്ടിഫാക്റ്റുകൾക്കും പൈപ്പ്ലൈനുകൾക്കും DVC; ലേക്കിലെ റോ ഡാറ്റയ്ക്കും ക്യൂറേറ്റ് ചെയ്ത ഡാറ്റാ സെറ്റുകൾക്കും lakeFS. lakeFS കമ്മിറ്റ് ഹാഷിനെ റഫറൻസ് ചെയ്യുന്ന DVC-യിലെ ഡാറ്റാ സെറ്റ് പതിപ്പുകൾ ട്രാക്ക് ചെയ്യുകയും പിൻ ചെയ്യുകയും ചെയ്യുക. കോഡ് Git-ൽ നിലനിൽക്കുന്നു; ഡാറ്റാ സെമാന്റിക്സ് തടാകത്തിൽ നിലനിൽക്കുന്നു. മറ്റ് ലെയറുകൾക്ക് രണ്ട് ജോലികളും നന്നായി ചെയ്യാൻ കഴിയുമെന്ന് ആരും നടിക്കേണ്ടതില്ല.
lakeFS vs DVC: പ്രായോഗികമായ കാര്യങ്ങൾ
സജ്ജീകരണവും പ്രവർത്തനവും
- DVC: ഒരു CLI ഇൻസ്റ്റാൾ ചെയ്യുക, റിമോട്ടുകൾ കോൺഫിഗർ ചെയ്യുക. നിങ്ങൾ കാഷെ വലുപ്പം, സ്റ്റോറേജ് ചെലവുകൾ, ആക്സസ് എന്നിവ കൈകാര്യം ചെയ്യും. Git നിങ്ങളുടെ ഹോം ബേസായി തുടരുന്നു. കുറഞ്ഞ പ്രശ്നങ്ങൾ.
- lakeFS: നിങ്ങൾ ഒരു സേവനം പ്രവർത്തിപ്പിക്കുന്നു. ഒരു സെർവർ, മെറ്റാഡാറ്റ, GC, ബ്രാഞ്ചിംഗ് പോളിസികൾ, ക്രെഡൻഷ്യലുകൾ എന്നിവയുണ്ട്. ബുദ്ധിമുട്ടുള്ള കാര്യമല്ല, പക്ഷേ ഇത് ഇൻഫ്രാസ്ട്രക്ചറാണ്. ഡാറ്റാ ലേക്കിലെ യഥാർത്ഥ ഐസൊലേഷനും ആറ്റോമിക് കമ്മിറ്റുകളുമാണ് ഇതിന്റെ പ്രതിഫലം.
പ്രകടനവും സ്കെയിലും
- DVC: വലിയ ആർട്ടിഫാക്റ്റുകൾ പുഷ്/പുൾ ചെയ്യുന്നത് ലോക്കൽ കാഷെയും ഹാർഡ്ലിങ്കുകളും ഉപയോഗിച്ച് വേഗത്തിലാക്കാൻ കഴിയും, പക്ഷേ മോഡൽ അടിസ്ഥാനപരമായി ക്ലയിന്റ്-ഡ്രൈവൺ ആണ്. നിങ്ങൾ ഒരു പെറ്റാബൈറ്റിനെ മില്ലിസെക്കൻഡിൽ ബ്രാഞ്ച് ചെയ്യില്ല; ആവശ്യമനുസരിച്ച് നിങ്ങൾ അതിനെ റഫറൻസ് ചെയ്യുകയും ഭാഗങ്ങൾ മാറ്റുകയും ചെയ്യും.
- lakeFS: ബ്രാഞ്ചിംഗ് മെറ്റാഡാറ്റ-ചീപ്പാണ് (കോപ്പി-ഓൺ-റൈറ്റ്). റീഡുകൾ “നേറ്റീവ് സ്പീഡ്” ആണ്, കാരണം അവ ഒബ്ജക്റ്റ് സ്റ്റോർ റീഡുകൾ മാത്രമാണ്. റൈറ്റുകൾക്ക് ഇൻഡയറക്ഷൻ ഉണ്ട്, പക്ഷേ “ലോകം പകർത്തുക” എന്നതിൻ്റെ ശിക്ഷയില്ല. ലയന വൈരുദ്ധ്യങ്ങൾ നിലവിലുണ്ട്, പക്ഷേ അവ കോഡിന്റെ വരികളിലല്ല, ഒബ്ജക്റ്റ്/കീ തലത്തിലാണ്.
റീപ്രൊഡ്യൂസിബിലിറ്റി
- DVC: നിങ്ങളുടെ
dvc.lock കോഡ്, പാരാമീറ്ററുകൾ, ഡാറ്റ ആർട്ടിഫാക്റ്റ് ഹാഷുകൾ എന്നിവയെ ഒരുമിപ്പിക്കുന്നു. കഴിഞ്ഞ മാസത്തെ ഒരു പരീക്ഷണം വീണ്ടും പ്രവർത്തിപ്പിക്കുന്നത് ഒരേ ബിറ്റുകൾ ഉത്പാദിപ്പിക്കണം. അത് കോഡ് അതിർത്തിയിലുള്ള റീപ്രൊഡ്യൂസിബിലിറ്റിയാണ്.
- lakeFS: ഡാറ്റാ അതിർത്തിയിലുള്ള റീപ്രൊഡ്യൂസിബിലിറ്റി: “കമ്മിറ്റ് Y അനുസരിച്ച് X ടേബിൾ വായിക്കുക.” അനലിറ്റിക്സിനോ ബാക്ക്ഫില്ലുകൾക്കോ വേണ്ടി നിങ്ങളുടെ മുഴുവൻ ഇൻപുട്ട് സർഫേസും നിങ്ങൾക്ക് ടൈം-ട്രാവൽ ചെയ്യാൻ കഴിയും.
കൊളാബറേഷൻ മോഡൽ
- DVC: ഡെവലപ്പർ-സെൻട്രിക് കൊളാബറേഷൻ—PR-കൾ, അവലോകനങ്ങൾ, പരീക്ഷണങ്ങൾ. ML ലൂപ്പിന് മികച്ചത്: ഡാറ്റ → ട്രെയിൻ → ഇവാലുവേറ്റ് → ഷിപ്പ്.
- lakeFS: ഡാറ്റാ-ടീം-സെൻട്രിക് കൊളാബറേഷൻ—ഇൻജക്ഷൻ, ട്രാൻസ്ഫോർമേഷൻ, വാലിഡേഷൻ എന്നിവയ്ക്കുള്ള ബ്രാഞ്ചുകൾ. അനലിറ്റിക്സ് ലൂപ്പിന് മികച്ചത്: ഇൻജസ്റ്റ് → മോഡൽ (dbt/ETL പോലെ) → പബ്ലിഷ് → സെർവ്.
ലളിതമായ ഇംഗ്ലീഷിലുള്ള ഡാറ്റാ കരാറുകൾ
ആളുകൾ “ഡാറ്റാ കരാറുകൾ” എന്ന് പറയുകയും സ്കീമ രജിസ്ട്രി സ്ക്രീൻഷോട്ടുകൾ കാണിക്കുകയും ചെയ്യുന്നു. ഇതാ ലളിതമായ രൂപം:
- DVC ഉപയോഗിച്ച്, ഒരു കരാർ നിങ്ങളുടെ പൈപ്പ്ലൈനിൽ അന്തർലീനമാണ്: നിങ്ങൾ ഡിപെൻഡൻസികളായി പ്രഖ്യാപിക്കുന്ന ഫയലുകളാണ് കരാർ. അവ മാറ്റുക, നിങ്ങളുടെ പൈപ്പ്ലൈനിന് അറിയാൻ കഴിയും.
- lakeFS ഉപയോഗിച്ച്, ലയിപ്പിക്കുന്നതിന് മുമ്പ് കരാർ നടപ്പിലാക്കാൻ കഴിയും: ലയിപ്പിക്കുന്നതിന് മുമ്പുള്ള ഹുക്കുകൾക്ക് മൂല്യനിർണ്ണയങ്ങൾ (സ്കീമ പരിശോധനകൾ, റോ എണ്ണങ്ങൾ, ശൂന്യമായ പരിധികൾ) പ്രവർത്തിപ്പിക്കാനും
പ്രധാന ബ്രാഞ്ചിൽ എത്തുന്നതിൽ നിന്ന് മോശം ഡാറ്റയെ തടയാനും കഴിയും. ഇത് മുതിർന്നവരുടെ റോളാണ്.
ഡെവലപ്പർ അനുഭവം (DX): എവിടെയാണ് പ്രശ്നം?
- CLI എർഗണോമിക്സ്: DVC-യുടെ CLI അഭിപ്രായമുള്ളതും പ്രവചിക്കാവുന്നതുമാണ്:
dvc add, dvc push, dvc exp run. lakeFS-ൻ്റെ CLI (UI) ഡാറ്റാ സെറ്റ് തലത്തിൽ ബ്രാഞ്ചുകൾ/കമ്മിറ്റുകളെക്കുറിച്ച് ചിന്തിക്കുന്നു: lakefs branch create, commit, merge.
- മാനസിക മോഡൽ: ഹാഷുകളുള്ള മൂന്നാം കക്ഷി ബൈനറികളായി ഡാറ്റയെ കണക്കാക്കാൻ DVC ഡെവലപ്പർമാരോട് ആവശ്യപ്പെടുന്നു. lakeFS ഡാറ്റാ എഞ്ചിനീയർമാരോട് ഐസൊലേഷൻ ലെയറുകളുള്ള ഒരു റിപ്പോസിറ്ററിയായി തടാകത്തെ കണക്കാക്കാൻ ആവശ്യപ്പെടുന്നു.
- കോഗ്നിറ്റീവ് ലോഡ്: DVC ഓരോ റിപ്പോസിറ്ററിക്കും ആചാരങ്ങൾ ചേർക്കുന്നു; lakeFS ഇൻഫ്രായും പോളിസികളും ചേർക്കുന്നു. നിങ്ങളുടെ ടീം എവിടെയാണ് താമസിക്കുന്നത് എന്നതിനെ അടിസ്ഥാനമാക്കി തിരഞ്ഞെടുക്കുക—IDE-കളോ ഡാറ്റാ പ്ലാറ്റ്ഫോമുകളോ.
ചെലവ്: സമയം, പണം, ക്ലൗഡ്-എഗ്രെസ് തലവേദനകൾ
- സംഭരണം: രണ്ടും ഒബ്ജക്റ്റ് സ്റ്റോറുകൾ കാര്യക്ഷമമായി ഉപയോഗിക്കുന്നു. നിങ്ങൾ കാഷെയിൽ അശ്രദ്ധമായി പ്രവർത്തിച്ചാൽ DVC ആർട്ടിഫാക്റ്റുകൾ ഡ്യൂപ്ലിക്കേറ്റ് ചെയ്യാൻ കഴിയും; lakeFS കോപ്പി-ഓൺ-റൈറ്റ് മെറ്റാഡാറ്റയെ ആശ്രയിക്കുന്നു, അത് നിങ്ങൾ മാറ്റം വരുത്തുന്നതുവരെ വിലകുറഞ്ഞതാണ്.
- എഗ്രെസ്സും മൂവ്മെന്റും: DVC-യുടെ പുഷ്/പുൾ കൂടുതൽ ഒബ്ജക്റ്റ് മാറ്റങ്ങൾ ഉണ്ടാക്കാൻ കഴിയും. lakeFS റീഡുകൾ കൂടുതലും പാസ്-ത്രൂ ആണ്. എഗ്രെസ് ചെലവുകൾ നിങ്ങളെ രാത്രിയിൽ ഉറങ്ങാൻ അനുവദിക്കുന്നില്ലെങ്കിൽ, lakeFS-ൻ്റെ “പകർത്താതെ ബ്രാഞ്ച് ചെയ്യുക” എന്ന മോഡൽ സൗഹൃദപരമാണ്.
- Ops ഓവർഹെഡ്: DVC-യുടെ ചെലവ് കൂടുതലും ഡെവലപ്പർ സമയമാണ്. lakeFS-ൻ്റെ ചെലവ് സേവന പരിപാലനമാണ്—ബാക്കപ്പുകൾ, അപ്ഗ്രേഡുകൾ, പോളിസികൾ.
ഷാർപ്പ് എഡ്ജുകൾ (ഇവയെക്കുറിച്ച് സംസാരിക്കാൻ ആർക്കും ഇഷ്ടമല്ല)
- DVC ലയന വൈരുദ്ധ്യങ്ങൾ മാന്ത്രികമല്ല: നിങ്ങൾ CSV വരികൾ ലയിപ്പിക്കുകയല്ല. ഏത് ബ്ലോബുകളാണ് വിജയിക്കുന്നതെന്ന് നിങ്ങൾ ഒത്തുതീർപ്പാക്കുകയാണ്. മികച്ച ലയനങ്ങൾക്ക്, നിങ്ങൾക്ക് ഇപ്പോഴും ഡാറ്റാ പ്രോസസ്സിംഗ് ആവശ്യമാണ്.
- lakeFS ലയന സെമാന്റിക്സുകൾ SQL അല്ല: നിങ്ങൾക്ക് S3 പാതകൾ ബ്രാഞ്ച് ചെയ്യാനും ലയിപ്പിക്കാനും കഴിയും, പക്ഷേ സെമാന്റിക് ടേബിൾ മാറ്റങ്ങൾ (പാർട്ടീഷൻ മാറ്റങ്ങൾ, അപ്സെർട്ടുകൾ) ഒത്തുതീർപ്പാക്കുന്നത് നിങ്ങളുടെ ജോലിയാണ്, lakeFS-ൻ്റെ അല്ല. ഫയൽസിസ്റ്റമായി കരുതുക, ഡാറ്റാബേസായിട്ടല്ല.
- ആക്സസ് കൺട്രോൾ വ്യത്യസ്തമാണ്: DVC Git-ൻ്റെ സോഷ്യൽ മോഡലിനെ പിന്തുടരുന്നു (PR-കൾ, അവലോകനങ്ങൾ). lakeFS IAM, പോളിസി ഹുക്കുകൾ എന്നിവയുമായി സംയോജിപ്പിക്കുന്നു. ഡാറ്റയ്ക്കായുള്ള IAM നിങ്ങളുടെ ഓർഗനൈസേഷൻ ഇതിനകം കേന്ദ്രീകരിച്ചിട്ടുണ്ടെങ്കിൽ, lakeFS സ്വാഭാവികമായി തോന്നുന്നു; നിങ്ങൾ GitHub-ലാണ് ജീവിക്കുന്നതെങ്കിൽ, DVC ശരിയാണെന്ന് തോന്നുന്നു.
സംയോജനങ്ങൾ: എഞ്ചിനുകൾ, ഓർക്കെസ്ട്രേറ്ററുകൾ, യഥാർത്ഥ ലോകം
- DVC: GitHub/GitLab CI, Makefiles, Airflow, ലോക്കൽ ഡെവലപ്മെന്റ് എന്നിവയുമായി നന്നായി പ്രവർത്തിക്കുന്നു. ML പരീക്ഷണങ്ങൾക്കായി, DVC-യുടെ പരീക്ഷണ ട്രാക്കിംഗും ആർട്ടിഫാക്റ്റ് മാനേജ്മെൻ്റുമാണ് പ്രധാന ആകർഷണം.
- lakeFS: Spark, Hive, Trino, Presto, dbt (ബാഹ്യ പട്ടികകൾ വഴി), Airflow,
s3a://repo/branch/path വായിക്കുന്ന ഏത് എഞ്ചിനുമായും നന്നായി പ്രവർത്തിക്കുന്നു. നിങ്ങളുടെ കമ്പ്യൂട്ട് ഒരേ സ്റ്റോറേജ് ഭാഷ സംസാരിക്കുന്നു എന്നതാണ് ഇതിലെ തന്ത്രം.
സുരക്ഷയും പാലിക്കലും
- DVC: സുരക്ഷ നിങ്ങളുടെ ക്ലൗഡ് സ്റ്റോറേജിനെയും Git അനുമതികളെയും ആശ്രയിച്ചിരിക്കുന്നു. ഓഡിറ്റ് ചെയ്യാനുള്ള കഴിവ് പൈപ്പ്ലൈൻ തലത്തിലാണ്—എന്താണ് ഉത്പാദിപ്പിച്ചത്, എപ്പോൾ.
- lakeFS: ഓരോ കമ്മിറ്റും ഒരു ഓഡിറ്റ് ചെക്ക്പോയിന്റാണ്. ലയിപ്പിക്കുന്നതിന് മുമ്പ് ഹുക്കുകൾക്ക് ഡാറ്റ സ്കാൻ ചെയ്യാൻ കഴിയും. നിങ്ങൾക്ക് GDPR-രീതിയിലുള്ള “എന്താണ് മാറിയത്, എപ്പോൾ” എന്നതിനെക്കുറിച്ച് അറിയണമെങ്കിൽ, lakeFS മികച്ചതാണ്.
ലളിതമായ താരതമ്യം
- primary keyword—“lakeFS vs DVC” ഒരു താരതമ്യം മാത്രമല്ല; ഇത് തത്വശാസ്ത്രത്തിലെ ഒരു വഴിത്തിരിവാണ്. DVC വലിയ ഫയലുകൾക്കും പരീക്ഷണങ്ങൾക്കുമുള്ള Git-നുള്ള ആനുകൂല്യമാണ്. lakeFS നിങ്ങളുടെ ഡാറ്റ യഥാർത്ഥത്തിൽ എവിടെയാണോ അവിടെ Git പോലുള്ള സെമാന്റിക്സാണ്.
- നിങ്ങളുടെ ദിവസം കൂടുതലും ഡാറ്റയെ സ്പർശിക്കുന്ന കോഡാണെങ്കിൽ, DVC ഉപയോഗിച്ച് നിങ്ങൾക്ക് കൂടുതൽ സന്തോഷമുണ്ടാകും.
- നിങ്ങളുടെ ദിവസം കൂടുതലും കോഡിനെ കണ്ടുമുട്ടുന്ന ഡാറ്റയാണെങ്കിൽ, നിങ്ങൾ lakeFS തിരഞ്ഞെടുക്കാൻ സാധ്യതയുണ്ട്.
- നിങ്ങളുടെ ദിവസം രണ്ടും ആണെങ്കിൽ, അഭിനന്ദനങ്ങൾ: നിങ്ങൾ സാധാരണക്കാരനാണ്. കോഡ് അഭിമുഖീകരിക്കുന്ന ലൂപ്പിനായി DVC-യും തടാകം അഭിമുഖീകരിക്കുന്ന ലൂപ്പിനായി lakeFS-ഉം ഉപയോഗിക്കുക. “രണ്ടും” എന്നത് തീരുമാനമെടുക്കാത്തതല്ല, അത് കൃത്യമാണ്.
ടൂളിംഗ് ഹൈപ്പിനെക്കുറിച്ചുള്ള ഒരു കുറിപ്പ് (Sider.AI എവിടെയാണ് ചേരുന്നത്)
സമയം ലാഭിക്കുമ്പോളോ പ്രശ്നങ്ങൾ തടയുമ്പോളോ മാത്രമാണ് ടൂളുകൾ രസകരമാകുന്നത്. ബാക്കിയെല്ലാം ഒരു ഡെമോയാണ്. Sider.AI ഇവിടെ സഹായിക്കുന്നു - നിങ്ങളുടെ തടാകമാണെന്ന് നടിച്ചുകൊണ്ടല്ല, മറിച്ച് മോശം ജോലികൾ ചെയ്തുകൊണ്ടാണ്: നിങ്ങളുടെ പൈപ്പ്ലൈനുകളെക്കുറിച്ച് ചിന്തിക്കാൻ സഹായിക്കുക, ഗാർഡ്റെയിൽ പരിശോധനകൾ നടത്തുക, നിങ്ങളുടെ ഡോക്യുമെന്റുകളും വ്യത്യാസങ്ങളും സത്യസന്ധമായി നിലനിർത്തുക. നിങ്ങൾ DVC-യും lakeFS-ഉം ഒരുമിപ്പിക്കാൻ പോകുകയാണെങ്കിൽ, Sider.AI പറയുന്നത് ശ്രദ്ധിക്കുക. പ്രായോഗിക സാഹചര്യങ്ങൾ: lakeFS vs DVC
Scenario 1: ETL-നുള്ള ഫീച്ചർ ഐസൊലേഷൻ
- നിങ്ങൾ ഒരു Bronze/Silver/Gold ലേക്ക് പരിപാലിക്കുന്നു. ഡൗൺസ്ട്രീം ഡാഷ്ബോർഡുകൾ തകരാറിലാക്കാതെ ക്ലിക്ക്സ്ട്രീം സ്വീകരിക്കുന്നതിനുള്ള ഒരു പുതിയ സ്കീമ നിങ്ങൾ പരീക്ഷിക്കാൻ ആഗ്രഹിക്കുന്നു. lakeFS ഉപയോഗിച്ച്,
silver-ൽ നിന്ന് etl/schema-v2 ബ്രാഞ്ച് ചെയ്യുക, നിങ്ങളുടെ ജോലികൾ പ്രവർത്തിപ്പിക്കുക, ഒറ്റപ്പെട്ട് സാധൂകരിക്കുക, പരിശോധനകൾ പാസായ ശേഷം ലയിപ്പിക്കുക. ഷാഡോ ബക്കറ്റുകളോ രാത്രിയിലെ കോപ്പികളോ ഇല്ല.
Scenario 2: റീപ്രൊഡ്യൂസിബിൾ ട്രെയിനിംഗ് റൺസ്
- നിങ്ങൾ ആഴ്ചതോറും മോഡലുകൾ പരിശീലിപ്പിക്കുന്നു. DVC കൃത്യമായ ഡാറ്റാ സെറ്റ് സ്നാപ്പ്ഷോട്ട് (
data.dvc ഒരു lakeFS കമ്മിറ്റിലേക്കോ S3 പതിപ്പിലേക്കോ പോയിന്റ് ചെയ്യുന്നു), പാരാമീറ്ററുകൾ, കോഡ് എന്നിവ പിൻ ചെയ്യുന്നു. dvc repro റൺ സ്പിൻ ചെയ്യുന്നു. മോഡൽ, അളവുകൾ, പ്ലോട്ടുകൾ എന്നിവ നിങ്ങൾക്ക് പുഷ് ചെയ്യാനും പങ്കിടാനും കഴിയുന്ന ആർട്ടിഫാക്റ്റുകളാണ്. ഓഡിറ്റർമാർക്ക് ഇത് ഇഷ്ടമാണ്. ഭാവിയിലുള്ള നിങ്ങൾക്കും ഇത് ഇഷ്ടപ്പെടും.
Scenario 3: മോശം പ്രസിദ്ധീകരണം പരിഹരിക്കുന്നു
- ആരെങ്കിലും
main-ലേക്ക് തെറ്റായ Parquet സെറ്റ് പ്രസിദ്ധീകരിക്കുന്നു. lakeFS ഉപയോഗിച്ച്, നിങ്ങൾ അവസാനത്തെ നല്ല കമ്മിറ്റിലേക്കോ ബ്രാഞ്ചിലേക്കോ റോൾബാക്ക് ചെയ്യുക, പാച്ച് ചെയ്യുക, ലയിപ്പിക്കുക. DVC ഉപയോഗിച്ച്, നിങ്ങൾ പൈപ്പ്ലൈനിൽ ഇത് പരിഹരിച്ച് ആർട്ടിഫാക്റ്റുകൾ വീണ്ടും പുഷ് ചെയ്യുകയാണ്. രണ്ടും പ്രവർത്തിക്കും; “പ്രസിദ്ധീകരിക്കുക” എന്നാൽ “എല്ലാവരും വായിക്കുന്ന തടാകം” എന്നാണെങ്കിൽ lakeFS മികച്ചതാണ്.
കണ്ണുനീരില്ലാത്ത കുടിയേറ്റവും സഹവർത്തിത്വവും
- നിങ്ങളുടെ സത്യങ്ങൾക്ക് പേര് നൽകി ആരംഭിക്കുക: ഏതൊക്കെ ഡാറ്റാ സെറ്റുകളാണ് സിസ്റ്റം-ഓഫ്-റെക്കോർഡ്? ഏതൊക്കെയാണ് എഫെമെറൽ? സിസ്റ്റം-ഓഫ്-റെക്കോർഡ് lakeFS-ൽ ഇടുക. പരീക്ഷണ ആർട്ടിഫാക്റ്റുകൾ DVC-യിൽ ഇടുക.
- നേരിയ സംയോജനം: DVC പാരാമീറ്ററുകളിലോ മെറ്റാഡാറ്റയിലോ lakeFS കമ്മിറ്റ് ID-കൾ സംഭരിക്കുക. അവയെ മാറ്റമില്ലാത്ത ഡാറ്റാ സെറ്റ് പതിപ്പുകളായി കണക്കാക്കുക.
- തടാകം തിളപ്പിക്കരുത്: ഐസൊലേഷൻ നിങ്ങൾക്ക് യഥാർത്ഥ പണമോ വാരാന്ത്യങ്ങളോ ലാഭിക്കുന്നിടത്ത് lakeFS സ്വീകരിക്കുക. റീപ്രൊഡ്യൂസിബിലിറ്റി നിങ്ങൾക്ക് വീണ്ടും പ്രവർത്തിപ്പിക്കുന്നത് ലാഭിക്കുന്നിടത്ത് DVC സ്വീകരിക്കുക.
തർക്കം: ഇത് ഒന്നുകിൽ/അല്ലെങ്കിൽ എന്നതല്ല, സത്യം എവിടെയുണ്ടോ അവിടെയുണ്ട്
സോഫ്റ്റ്വെയർ ടീമുകൾക്ക് എല്ലാം ഭരിക്കാൻ ഒരു ടൂൾ വേണം. അത് തെറ്റായ ചോദ്യമാണ്. ശരിയായത്: സത്യം എവിടെയാണ്?
- സത്യം റിപ്പോസിറ്ററിയിലാണെങ്കിൽ—കോഡ്, കോൺഫിഗറേഷനുകൾ, നിങ്ങൾ പരിശീലിപ്പിച്ച പ്രത്യേക ഫയലുകൾ—DVC Git-ൻ്റെ സ്വാഭാവിക വിപുലീകരണമാണ്.
- സത്യം തടാകത്തിലാണെങ്കിൽ—നിങ്ങളുടെ കമ്പനിക്ക് ശക്തി നൽകുന്ന പട്ടികകൾ, പാർട്ടീഷനുകൾ, ഒബ്ജക്റ്റ് കീകൾ—lakeFS നിങ്ങൾക്ക് കമ്മിറ്റ് സമയത്ത് വിവേകം നൽകുന്നു.
രണ്ടും വേർഷൻ കൺട്രോളിന്റെ രൂപങ്ങളാണ്. ഡാറ്റ എവിടെയുണ്ടോ അവിടെ ജീവിക്കുന്നത് ഒന്നുമാത്രമാണ്.
lakeFS vs DVC: ആളുകൾ ചോദിക്കുന്ന ചോദ്യങ്ങൾക്കുള്ള ഉത്തരങ്ങൾ
- “DVC-ക്ക് എന്റെ ഡാറ്റാ ലേക്കിനെ മാറ്റാൻ കഴിയുമോ?” ഇല്ല. ഇതിന് നിങ്ങളുടെ ആർട്ടിഫാക്റ്റുകൾ ഓർഗനൈസ് ചെയ്യാനും പരീക്ഷണങ്ങൾ നടത്താനും കഴിയും. ഇത് S3-യെ ഒരു ട്രാൻസാക്ഷണൽ സ്റ്റോറായി പ്രവർത്തിക്കില്ല.
- “lakeFS-ന് എന്റെ ML പരീക്ഷണ ട്രാക്കറിനെ മാറ്റാൻ കഴിയുമോ?” ഇല്ല. ഇതിന് പരീക്ഷണങ്ങളുടെ ഇൻപുട്ട്/ഔട്ട്പുട്ട് പതിപ്പ് നൽകാൻ കഴിയും, പക്ഷേ നിങ്ങളുടെ ROC കർവുകളെക്കുറിച്ച് ഇതിന് താൽപ്പര്യമില്ല.
- “ഇത് Git LFS അല്ലേ?” ഒരു സൈക്കിൾ കുറഞ്ഞ ലോഹമുള്ള ഒരു കാറാണെന്ന് പറയുന്നതുപോലെയാണിത്. DVC Git-നോട് ചേർന്നുള്ളതാണ്, പക്ഷേ ഡാറ്റാ പൈപ്പ്ലൈനുകൾ മനസ്സിലാക്കുന്നു. lakeFS Git-നെ പെറ്റാബൈറ്റിലേക്ക് വലിച്ചിടാതെ Git പോലുള്ള സെമാന്റിക്സുകൾ നൽകുന്നു.
സങ്കീർണ്ണതയെക്കുറിച്ചുള്ള ഒരു ചെറിയ വാക്ക്
ഓരോ അമൂർത്തീകരണവും പിന്നീട് അടയ്ക്കേണ്ട ഒരു ബില്ലാണ്. DVC-യുടെ ബിൽ ഡെവലപ്പർ ആചാരവും ചിലപ്പോൾ ആർട്ടിഫാക്റ്റ് പ്രശ്നങ്ങളുമാണ്. lakeFS-ൻ്റെ ബിൽ ഒരു സേവനം പ്രവർത്തിപ്പിക്കുകയും ഒബ്ജക്റ്റ് സ്റ്റോറുകൾക്കായി പുതിയ ലയന സെമാന്റിക്സുകൾ പഠിക്കുകയുമാണ്. ഒരു ടൂൾ സൗജന്യമാണെന്ന് തോന്നുകയാണെങ്കിൽ, അത് നിങ്ങളുടെ ശ്രദ്ധയ്ക്ക് പണം ഈടാക്കുകയാണ്.
അവസാന വാക്ക്
“lakeFS vs DVC” ഒരു പോരാട്ടം പോലെ വായിക്കുന്നു. ഇത് ഒരേ ഉപകരണം ഉപയോഗിക്കാത്ത രണ്ട് സംഗീതജ്ഞരെപ്പോലെയാണ്. താളം കൊണ്ടുപോകാൻ നിങ്ങൾ ഒരു ഡ്രമ്മറോട് ആവശ്യപ്പെടില്ല, മാർച്ചിംഗ് ബാൻഡിനായി താളം സൂക്ഷിക്കാൻ നിങ്ങൾ ഒരു വയലിനോടും ആവശ്യപ്പെടില്ല. കോഡിന് ലൂപ്പിന്റെ ഉടമസ്ഥാവകാശം ഉള്ളിടത്ത് DVC ഉപയോഗിക്കുക. ഡാറ്റയ്ക്ക് മുറിയുടെ ഉടമസ്ഥാവകാശം ഉള്ളിടത്ത് lakeFS ഉപയോഗിക്കുക. നിങ്ങൾ രണ്ട് ലോകങ്ങളിലും ജീവിക്കുന്നുണ്ടെങ്കിൽ, അത് നല്ലതാണ്: അതിനർത്ഥം നിങ്ങൾ ശ്രദ്ധിക്കുന്നു എന്നാണ്.
കാരണം വേർഷൻ കൺട്രോളിന്റെ യഥാർത്ഥ ലക്ഷ്യം—അത് Git-നെ പൊതിയുകയാണെങ്കിലും S3-യെ പൊതിയുകയാണെങ്കിലും—കമ്മിറ്റ് ഹാഷ് അല്ല. ലോകത്തെ തകർക്കാതെ കാര്യങ്ങൾ മാറ്റാനുള്ള അനുമതിയാണ്. ബാക്കിയെല്ലാം ടാബ് ബാർ മാത്രമാണ്.
കീവേഡ്-ഫ്രണ്ട്ലി
ML പൈപ്പ്ലൈനുകൾക്കായുള്ള lakeFS vs DVC
നിങ്ങളുടെ ML പൈപ്പ്ലൈനുകൾ ഡിസ്ക്രീറ്റ് ഡാറ്റാ സെറ്റുകളും മോഡൽ ആർട്ടിഫാക്റ്റുകളുമുള്ള കോഡ്-ഹെവി ആണെങ്കിൽ, DVC നന്നായി സംയോജിപ്പിക്കുന്നു: Git-ലെ പോയിന്റർ ഫയലുകൾ, ഹാഷുകൾ, ട്രാക്ക് ചെയ്ത പരീക്ഷണങ്ങൾ. ഒന്നിലധികം ടീമുകൾക്ക് നൽകുന്ന ഡാറ്റാ-ഹെവി പൈപ്പ്ലൈനുകൾക്ക്, തടാകത്തിലുടനീളമുള്ള ബ്രാഞ്ച് അടിസ്ഥാനമാക്കിയുള്ള ഐസൊലേഷൻ ഉപയോഗിച്ച് lakeFS വിജയിക്കുന്നു.
ഡാറ്റാ ഗവേണൻസിനായുള്ള lakeFS vs DVC
lakeFS നിങ്ങൾക്ക് സ്റ്റോറേജ് അതിർത്തിയിൽ ഓഡിറ്റ് ചെയ്യാവുന്ന കമ്മിറ്റുകളും ലയന ഹുക്കുകളും നൽകുന്നു. DVC നിങ്ങൾക്ക് പൈപ്പ്ലൈൻ അതിർത്തിയിൽ ഉറവിടം നൽകുന്നു. നിയമപരമായ കാര്യങ്ങളിൽ മാറ്റമില്ലാത്ത ചെക്ക്പോയിന്റുകൾ വേണമെങ്കിൽ, അത് lakeFS ആണ്; എഞ്ചിനീയറിംഗിന് റീപ്രൊഡ്യൂസിബിൾ റൺസ് വേണമെങ്കിൽ അത് DVC ആണ്.
ഒബ്ജക്റ്റ് സ്റ്റോറേജിനായി DVC-യും lakeFS-ഉം തമ്മിൽ തിരഞ്ഞെടുക്കുന്നു
Q5: lakeFS vs DVC എന്നിവയുടെ ചിലവുകൾ എങ്ങനെ താരതമ്യം ചെയ്യാം?
DVC-യുടെ ചിലവുകൾ പുഷ്/പുൾ സമയത്ത് ഡെവലപ്പർ സമയത്തിലേക്കും സ്റ്റോറേജ് മാറ്റങ്ങളിലേക്കും ചായുന്നു. lakeFS-ൻ്റെ ചിലവുകൾ സേവനം പ്രവർത്തിപ്പിക്കുന്നതിലേക്കും നയങ്ങൾ കൈകാര്യം ചെയ്യുന്നതിലേക്കും ചായുന്നു, എന്നാൽ ബ്രാഞ്ചിംഗ് വിലകുറഞ്ഞതും എഗ്രെസ്സ് സൗഹൃദവുമാണ്.