{"id":11750,"date":"2021-10-06T12:31:13","date_gmt":"2021-10-06T10:31:13","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=11750"},"modified":"2023-05-18T16:56:57","modified_gmt":"2023-05-18T14:56:57","slug":"architektura-lakehouse-koncepcja-delta-lake-w-usludze-databricks","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/architektura-lakehouse-koncepcja-delta-lake-w-usludze-databricks\/","title":{"rendered":"Architektura Lakehouse, koncepcja Delta Lake w us\u0142udze DataBricks"},"content":{"rendered":"\n<p>Firmy posiadaj\u0105 coraz wi\u0119cej \u017ar\u00f3de\u0142 danych: systemy CRM, dane transakcyjne, ewidencje czasu pracy, wiadomo\u015bci e-mail oraz posty z portali spo\u0142eczno\u015bciowych. Wszystkie te systemy generuj\u0105 ogromne ilo\u015bci danych, kt\u00f3re trzeba przetwarza\u0107, magazynowa\u0107 i aktualizowa\u0107. Popularn\u0105 praktyk\u0105 jest budowanie hurtowni danych, do kt\u00f3rych \u0142adowane s\u0105 dane uprzednio oczyszczone, uporz\u0105dkowane i skatalogowane. U\u017cytkownicy maj\u0105 \u0142atwy dost\u0119p do zgromadzonych tam informacji przy u\u017cyciu prostych narz\u0119dzi. Pojawiaj\u0105 si\u0119 jednak pewne w\u0105tpliwo\u015bci: czy hurtownie danych odpowiadaj\u0105 na wszystkie potrzeby i co zrobi\u0107, kiedy taka koncepcja oka\u017ce si\u0119 niewystarczaj\u0105ca? Odpowied\u017a wydaje si\u0119 oczywista \u2013 trzeba poszuka\u0107 innego, bardziej z\u0142o\u017conego i umo\u017cliwiaj\u0105cego przetworzenie wi\u0119kszej ilo\u015bci danych rozwi\u0105zania. Jednym z takich rozwi\u0105za\u0144 jest Data Lake.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Koncepcja Data Lake<\/h2>\n\n\n\n<p>Data Lake to w dos\u0142ownym t\u0142umaczeniu jezioro danych. Definicja wskazuje, \u017ce w Data Lake gromadzi si\u0119 dane z wielu \u017ar\u00f3de\u0142 w swojej naturalnej formie \u2013 pliki p\u0142askie, tabele, dokumenty, pliki blob (binary large object, czyli pliki binarne znacznej obj\u0119to\u015bci tj. filmy, pliki muzyczne, grafiki). Sam termin Data Lake zosta\u0142 zaproponowany przez Jamesa Dixona. James, \u00f3wczesny dyrektor ds. technologii w Pentaho, uku\u0142 ten termin, aby zbudowa\u0107 kontrast w stosunku do data mart\u00f3w, kt\u00f3re s\u0105 mniejszym repozytorium atrybut\u00f3w pochodz\u0105cych z surowych danych.<\/p>\n\n\n\n<p>W ostatnich latach znacz\u0105co wzros\u0142o zapotrzebowanie na systemy przetwarzania danych. Ka\u017cda firma chce u\u017cy\u0107 danych, kt\u00f3re posiada, aby dowiedzie\u0107 si\u0119 wi\u0119cej o zwyczajach klient\u00f3w, trendach w bran\u017cy oraz o nowych kierunkach rozwoju. Zajmuj\u0105 si\u0119 tym systemy analityczne oraz algorytmy uczenia maszynowego.<\/p>\n\n\n\n<p>Termin Data Lake opisuje strategi\u0119 przechowywania danych \u2013 nie jest to zdefiniowana technologia. Podobnie, termin hurtownia danych opisuje strategi\u0119 mo\u017cliw\u0105 do osi\u0105gni\u0119cia przy u\u017cyciu r\u00f3\u017cnych platform. Data Lake cz\u0119sto wyst\u0119puje w parze jako element platformy Hadoop, jednak\u017ce implementacja tego typu rozwi\u0105zania jest mo\u017cliwa r\u00f3wnie\u017c w innych \u015brodowiskach (Amazon S3, Azure Data Lake Storage).<\/p>\n\n\n\n<p>G\u0142\u00f3wn\u0105 r\u00f3\u017cnic\u0105 mi\u0119dzy hurtowni\u0105 danych a Data Lake jest forma przechowywania danych oraz ich schemat. W hurtowni dane trzymane s\u0105 w tabelach relacyjnych oraz kostkach OLAP i posiadaj\u0105 schemat, do kt\u00f3rego musz\u0105 pasowa\u0107 zapisywane rekordy (schema-on-write). Je\u017celi zabraknie atrybut\u00f3w lub ich warto\u015b\u0107 b\u0119dzie spoza przewidzianego zakresu, to pr\u00f3ba zapisu zako\u0144czy si\u0119 niepowodzeniem.<\/p>\n\n\n\n<p>W Data Lake dane zapisywane s\u0105 w swoich oryginalnych formatach, bez okre\u015blonego schematu. Zdefiniowanie schematu wymagane jest dopiero, gdy chcemy je odczyta\u0107 lub zapisa\u0107 w tabelach (schema-on-read). Pozwala to zaoszcz\u0119dzi\u0107 czas podczas zapisu, jednak\u017ce powoduje ryzyko utraty jako\u015bci danych przy odczycie, gdy\u017c poprawno\u015b\u0107 danych nie jest sprawdzana w momencie zapisywania.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Przyk\u0142ady zastosowania Data Lake<\/h2>\n\n\n\n<p>Jako prosty przyk\u0142ad Data Lake mo\u017cna wskaza\u0107 chmurow\u0105 us\u0142ug\u0119 zapisywania zdj\u0119\u0107 (iCloud, Google Photos itp.). Dodajemy zdj\u0119cia na serwerze, system zbiera metadane o fotografii (czas wykonania, dane aparatu, lokalizacj\u0119 itp). Jako wynik tych dzia\u0142a\u0144 otrzymujemy mo\u017cliwo\u015b\u0107 nie tylko wyszukiwania zdj\u0119cia po dacie wykonania, ale te\u017c po lokalizacji, godzinie, dominuj\u0105cym kolorze i osobach, kt\u00f3re s\u0105 na zdj\u0119ciach. Id\u0105c dalej, bardziej skomplikowanym przyk\u0142adem jest potrzeba przeanalizowania zestawu plik\u00f3w b\u0119d\u0105cych zdj\u0119ciami, filmami, notatkami g\u0142osowymi i plikami tekstowymi. Aby je poprawnie przeanalizowa\u0107, dla ka\u017cdego typu danych trzeba stworzy\u0107 zestaw atrybut\u00f3w, kt\u00f3re, bazuj\u0105c na metadanych, pozwala\u0142yby na przetwarzanie takich plik\u00f3w. Wydobywaniem i analiz\u0105 tych oraz wielu innych szczeg\u00f3\u0142\u00f3w zajmuj\u0105 si\u0119 algorytmy uczenia maszynowego.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Przep\u0142yw danych w Data Lake<\/h2>\n\n\n\n<ol class=\"wp-block-list\"><li>Na powy\u017cszych przyk\u0142adach mo\u017cemy wyodr\u0119bni\u0107 klika etap\u00f3w, przez kt\u00f3re przechodz\u0105 dane zgromadzone w Data Lake:<\/li><li>\u0141adowanie danych \u2013 pojedyncze pliki binarne, p\u0142askie lub dane strumieniowe.<\/li><li>Zapis \u2013 zapewnienie trwa\u0142o\u015bci zapisu przy niskim koszcie przechowywania.<\/li><li>Katalogowanie \u2013 klasyfikowanie danych u\u0142atwia ich przeszukiwanie.<\/li><li>Przetwarzanie \u2013 umo\u017cliwienie analizy zgromadzonych danych przy u\u017cyciu specjalnych j\u0119zyk\u00f3w zapyta\u0144, np. SQL, Scala, Python i okre\u015blonych narz\u0119dzi, np. Spark, Hive, Impala.<\/li><li>Zabezpieczanie \u2013 bezpiecze\u0144stwo zgromadzanych danych jest elementem wie\u0144cz\u0105cym dany proces.<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Korzy\u015bci i zagro\u017cenia dodawania danych do Data Lake<\/h2>\n\n\n\n<p>Takie podej\u015bcie do \u0142adowania danych ma swoje dobre i z\u0142e strony. Do Data Lake mo\u017cna za\u0142adowa\u0107 wszystko bardzo szybko. W momencie, kiedy zbieramy dane nieprzydatne, tworzymy bagno danych \u2013 Data Swamp. Dane s\u0105 dost\u0119pne, ale trudne do analizy, cz\u0119sto bezu\u017cyteczne.<\/p>\n\n\n\n<p>Pomimo swoich niedoskona\u0142o\u015bci odpowiednie rozwijanie i utrzymywanie takiej struktury, niesie za sob\u0105 olbrzymie mo\u017cliwo\u015bci analityczne. Koncepcja Data Lake jest bardzo szeroko stosowana. Poprzez swoj\u0105 popularno\u015b\u0107 i niezawodno\u015b\u0107 ewolucja Data Lake w ciekawsze i bardziej zaawansowane implementacje to tylko kwestia czasu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Koncepcja Lakehouse<\/h2>\n\n\n\n<p>Lakehouse to stosunkowo nowy termin w paradygmacie architektury platform do przetwarzania danych. Jest to rozwi\u0105zanie, kt\u00f3re implementuje elementy z koncepcji data warehouse oraz Data Lake. Na rynku s\u0105 dost\u0119pne narz\u0119dzia, kt\u00f3re pozwalaj\u0105 skorzysta\u0107 z tej koncepcji: Apache Drill \u2013 silnik obs\u0142uguj\u0105cy zapytania niezale\u017cne od schematu bazy danych oraz Amazon Athena \u2013 umo\u017cliwia u\u017cytkownikowi zapytanie o dane bezpo\u015brednio z S3 po utworzeniu definicji schematu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">R\u00f3\u017cnice pomi\u0119dzy Data Lake a Lakehouse<\/h2>\n\n\n\n<p>W stosunku do Data Lake, Lakehouse cechuje si\u0119 takimi mo\u017cliwo\u015bciami:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Transakcje ACID (atomicity, consistency, isolation, durability) \u2013 dzi\u0119ki serializowanym poziomom izolacji zyskujemy pewno\u015b\u0107, \u017ce u\u017cytkownik nie dostanie niesp\u00f3jnych danych.<\/li><li>Wymaganie schematu przy zapisie danych. Jest to dodatkowy mechanizm przeciwdzia\u0142aj\u0105cy zapisywaniu niepasuj\u0105cych danych.<\/li><li>Wersjonowanie danych umo\u017cliwia wycofanie zmian wprowadzonych do bazy.<\/li><li>Bezpo\u015bredni dost\u0119p do danych dla narz\u0119dzi BI. Przyspiesza to \u0142adowanie danych do raport\u00f3w i likwiduje potrzeb\u0119 kopiowania danych z Data Lake do hurtowni danych.<\/li><li>Otwarto\u015b\u0107 na udost\u0119pnianie danych poprzez obs\u0142ug\u0119 zapyta\u0144 przez API.<\/li><li>Odseparowanie danych od mechanizm\u00f3w ich przetwarzania. Oznacza to, \u017ce klaster danych jest oddzielony od klastra obliczeniowego. Dzi\u0119ki takiemu rozwi\u0105zaniu klastry s\u0105 skalowalne niezale\u017cnie od siebie.<\/li><li>Wsparcie r\u00f3\u017cnych \u017ar\u00f3de\u0142 danych: plik\u00f3w tekstowych, obraz\u00f3w i plik\u00f3w video.<\/li><li>Obs\u0142uga streamingu od \u017ar\u00f3d\u0142a danych a\u017c do udost\u0119pnienia danych na raporcie. Nie trzeba utrzymywa\u0107 osobnego systemu obs\u0142uguj\u0105cego dane strumieniowe.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Zastosowanie Delta Lake<\/h2>\n\n\n\n<p>Najpopularniejszym narz\u0119dziem implementuj\u0105cym architektur\u0119 Lakehouse jest zaproponowana przez firm\u0119 Databricks us\u0142uga nazwana Delta Lake. Zapewnia ono nast\u0119puj\u0105ce funkcje:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>transakcje ACID,<\/li><li>wersjonowanie,<\/li><li>jednoczesny odczyt i zapis danych,<\/li><li>bezpo\u015bredni dost\u0119p do danych zgromadzonych w Delta Lake,<\/li><li>separacja klastra danych i klastra obliczeniowego,<\/li><li>wsparcie plik\u00f3w z danymi ustrukturyzowanymi i nieustrukturyzowanymi w tym IoT,<\/li><li>wsparcie streamingu danych.<\/li><\/ul>\n\n\n\n<p>Zastosowanie tej koncepcji znacznie u\u0142atwia dodawanie \u017ar\u00f3de\u0142 danych i administrowanie ju\u017c istniej\u0105cymi tabelami. Za umo\u017cliwienie tych operacji odpowiada zastosowanie logu transakcji, do kt\u00f3rego jest zapisywana ka\u017cda operacja w Delta Lake.<\/p>\n\n\n\n<p>Ka\u017cdy zapis, modyfikacja i usuni\u0119cie tabeli s\u0105 odnotowane w logu. Mo\u017cna go podejrze\u0107, sprawdzi\u0107, jakie dzia\u0142ania zosta\u0142y wykonane i w razie potrzeby przywr\u00f3ci\u0107 konkretn\u0105 wersj\u0119.<\/p>\n\n\n\n<div class=\"wp-block-image wp-image-11754\"><figure class=\"aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc1.png\"><img decoding=\"async\" width=\"1024\" height=\"538\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc1-1024x538.png\" alt=\"Por\u00f3wnanie architektur Data Warehouse, Data Lake i Lakehouse na przestrzeni czasu\" class=\"wp-image-11754\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc1-1024x538.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc1-300x158.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc1.png 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Ryc 1. <a href=\"https:\/\/databricks.com\/blog\/2020\/01\/30\/what-is-a-data-lakehouse.html\" rel=\"nofollow\" >Por\u00f3wnanie architektur: Data Warehouse, Data Lake i Lakehouse<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Delta Lake jako koncepcja chmurowa<\/h2>\n\n\n\n<p>Koncepcja Delta Lake jest koncepcj\u0105 chmurow\u0105, dost\u0119pn\u0105 dla chmur: AWS, GCP oraz Azure. Poni\u017cej przedstawiam kr\u00f3tki opis tego, jak po\u0142\u0105czono funkcjonalno\u015bci dla poszczeg\u00f3lnych rozwi\u0105za\u0144.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">AWS i Azure<\/h3>\n\n\n\n<p>Dla AWS i Azure implementacja Delta Lake sk\u0142ada si\u0119 z dw\u00f3ch platform: kontroli (control plane) i danych (data plane):<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Platforma kontroli obejmuje us\u0142ugi backendowe, kt\u00f3rymi Databricks zarz\u0105dza na w\u0142asnym koncie AWS b\u0105d\u017a Azure. Zapisana jest tam konfiguracja i skrypty u\u017cytkownika.<\/li><li>Platforma danych jest zarz\u0105dzana przez u\u017cytkownika i tam fizycznie zapisane s\u0105 dane. Mo\u017cna u\u017cy\u0107 \u0142\u0105cznik\u00f3w Databricks, aby \u0142\u0105czy\u0107 si\u0119 z zewn\u0119trznymi \u017ar\u00f3d\u0142ami danych spoza konta AWS u\u017cytkownika. Istnieje r\u00f3wnie\u017c mo\u017cliwo\u015b\u0107 pozyskiwania danych z zewn\u0119trznych \u017ar\u00f3de\u0142 typu strumieniowego, takich jak: dane zdarze\u0144 (events), dane przesy\u0142ania strumieniowego (streaming data), dane IoT i inne.<\/li><\/ul>\n\n\n\n<p>Dane zawsze znajduj\u0105 si\u0119 na koncie platformy Azure na p\u0142aszczy\u017anie danych i we w\u0142asnych \u017ar\u00f3d\u0142ach u\u017cytkownika, a nie na p\u0142aszczy\u017anie sterowania, dzi\u0119ki czemu pliki \u017ar\u00f3d\u0142owe i dost\u0119p do danych jest kontrolowany przez u\u017cytkownika.<\/p>\n\n\n\n<div class=\"wp-block-image wp-image-11755\"><figure class=\"aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc2.png\"><img decoding=\"async\" width=\"1014\" height=\"871\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc2.png\" alt=\"Ryc 2. Schemat przep\u0142ywu danych do i z Delta Lake w Azure i AWS\" class=\"wp-image-11755\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc2.png 1014w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc2-300x258.png 300w\" sizes=\"(max-width: 1014px) 100vw, 1014px\" \/><\/a><figcaption>Ryc 2. <a href=\"https:\/\/docs.databricks.com\/getting-started\/overview.html\" rel=\"nofollow\" >Schemat przep\u0142ywu danych do i z Delta Lake w Azure i AWS<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Google Cloud Plarform<\/h3>\n\n\n\n<p>Podobne podej\u015bcie zastosowane jest w integracji Databricks i Google Cloud Platform. Korzystanie z Databricks jest dost\u0119pne przez Google Kubernetes Engine.<\/p>\n\n\n\n<div class=\"wp-block-image wp-image-11756\"><figure class=\"aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc3.png\"><img decoding=\"async\" width=\"926\" height=\"1024\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc3-926x1024.png\" alt=\"Ryc 3. Schemat przep\u0142ywu danych do i z Delta Lake w Google Cloud Platform\" class=\"wp-image-11756\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc3-926x1024.png 926w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc3-271x300.png 271w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/ryc3.png 1812w\" sizes=\"(max-width: 926px) 100vw, 926px\" \/><\/a><figcaption>Ryc 3. <a href=\"https:\/\/docs.gcp.databricks.com\/getting-started\/overview.html\" rel=\"nofollow\" >Schemat przep\u0142ywu danych do i z Delta Lake w Google Cloud Platform<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<p>Databricks w Google Cloud jest silnie zintegrowany z Google BigQuery. Dzi\u0119ki tej integracji developerzy mog\u0105 rozszerzy\u0107 istniej\u0105ce mo\u017cliwo\u015bci Databricks Lakehouse, kt\u00f3re dzia\u0142aj\u0105 w Google Cloud. Maj\u0105 mo\u017cliwo\u015b\u0107 wykorzystania Google BigQuery do cel\u00f3w analitycznych, ostatecznie upraszczaj\u0105c przetwarzanie danych, zwi\u0119kszaj\u0105c wykorzystanie oraz tworz\u0105c nowe modele biznesowe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Podsumowanie<\/h2>\n\n\n\n<p>Koncepcja Lakehouse b\u0119dzie coraz bardziej zyskiwa\u0107 na popularno\u015bci. \u0141\u0105czy w sobie najlepsze praktyki zwi\u0105zane z hurtowniami danych i rozwi\u0105zaniami klasy Big Data. Lakehouse umo\u017cliwia implementowanie struktur danych i zarz\u0105dzanie nimi w spos\u00f3b znany z hurtowni danych, wykorzystuj\u0105c tani\u0105 i skalowaln\u0105 pami\u0119\u0107 masow\u0105 w Data Lake.<\/p>\n\n\n\n<p>Mo\u017ce ona upro\u015bci\u0107 przep\u0142yw danych poprzez na\u0142o\u017cenie wymaga\u0144 dotycz\u0105cych zapisu. Chodzi tu o konkretne typy danych, wielko\u015bci tabel i wst\u0119pne czyszczenie danych ju\u017c na wczesnym etapie przetwarzania. Zapisywane dane b\u0119d\u0105 ju\u017c w takim momencie gotowe, aby umo\u017cliwi\u0107 konsumentom danych (analitykom i naukowcom) bezpo\u015brednie po\u0142\u0105czenie do pami\u0119ci masowej (np. AWS S3, Azure Blob) i uruchamianie na niej konkretnych zapyta\u0144.<\/p>\n\n\n\n<p>Komercyjne rozwi\u0105zanie zaproponowane przez Databricks s\u0105 dost\u0119pne na wszystkich du\u017cych platformach chmurowych (AWS, Azure, GCP). Wszyscy zainteresowani mog\u0105 przetestowa\u0107 to rozwi\u0105zania za darmo przez okres 14 dni (Databricks Platform dla biznesu i rozwi\u0105za\u0144 komercyjnych) lub skorzysta\u0107 z nielimitowanego dost\u0119pu do Databricks Community (w celach edukacyjnych na\u0142o\u017cono ograniczenia dotycz\u0105ce ilo\u015bci przetwarzania danych).<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/docs.databricks.com\/getting-started\/index.html\" rel=\"nofollow\" >Oficjalny przewodnik<\/a><\/li><li><a href=\"https:\/\/databricks.com\/try-databricks\" rel=\"nofollow\" >Rejestracja na okres pr\u00f3bny<\/a><\/li><\/ul>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;11750&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;8&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;4.9&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;4.9\\\/5 ( votes: 8)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Architektura Lakehouse, koncepcja Delta Lake w us\u0142udze DataBricks&quot;,&quot;width&quot;:&quot;136.6&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 136.6px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            4.9\/5 ( votes: 8)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Firmy posiadaj\u0105 coraz wi\u0119cej \u017ar\u00f3de\u0142 danych: systemy CRM, dane transakcyjne, ewidencje czasu pracy, wiadomo\u015bci e-mail oraz posty z portali spo\u0142eczno\u015bciowych. &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/architektura-lakehouse-koncepcja-delta-lake-w-usludze-databricks\/\">Continued<\/a><\/p>\n","protected":false},"author":312,"featured_media":11752,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1316],"tags":[1135,1137,1136],"class_list":["post-11750","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-miekko","tag-data-lake","tag-delta-lake","tag-lakehouse"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/10\/Data-lake.png","category_names":["Development na mi\u0119kko"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/11750"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/312"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=11750"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/11750\/revisions"}],"predecessor-version":[{"id":21738,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/11750\/revisions\/21738"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/11752"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=11750"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=11750"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=11750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}