Chwyć za odpowiednie narzędzia i zbuduj swój Second Brain już dziś!

Chwyć za odpowiednie narzędzia i zbuduj swój Second Brain już dziś!

Jeśli jesteś już po lekturze pierwszego artykułu o Second Brain, wiesz, co oznacza to pojęcie i jak budować swój własny system. Ale pewnie zastanawiasz się, co dalej? Znam teorię, ale jak przejść do praktyki? Wszystkiego dowiesz się z dzisiejszego tekstu. Pomysł to tylko początek, teraz potrzebujesz narzędzi, które pomogą Ci wdrożyć go w życie.

Dopasuj narzędzie do swoich potrzeb.

Osoby ceniące sobie prostotę, szybkość i brak zbędnych konfiguracji robią notatki w Notatniku, bo to przecież oczywisty program do notatek. Bardziej zaawansowani używają Worda lub Google Docs. Następny poziom to OneNote, który dla mnie jest strasznie nieintuicyjny i toporny. Po drodze jest mnóstwo innych programów: Apple Notes, Google Keep, Simplenote, Standard Notes, Evernote, Bear, Roam, mem.ai i wiele, wiele innych. Na podstawie researchu, który przeprowadziłem, aby wybrać program dla siebie, wyłoniłem trzy, moim subiektywnym zdaniem, najlepsze aplikacje: Notion, Logseq i Obsidian. Szybko przejrzyjmy ich wady i zalety – może to pomoże Ci podjąć decyzję:

Notion
Zalety:

  • Wszechstronność: Możliwość tworzenia baz danych, tablic Kanban, kalendarzy i innych.
  • Szablony: Duża liczba dostępnych szablonów do różnych zastosowań.
  •  Współpraca: Możliwość współdzielenia notatek i pracy zespołowej.

Wady:

  • Krzywa nauki: Może być przytłaczający dla nowych użytkowników.
  • Brak pełnej kontroli nad danymi: Wszystkie notatki są przechowywane w chmurze Notion.

Logseq
Zalety:

  • Open Source: Aplikacja jest open source, co daje pełną kontrolę nad danymi.
  • Zaawansowane linkowanie: Możliwość tworzenia wzajemnych linków między notatkami.
  • Interfejs oparty na Markdown: Prosty i intuicyjny interfejs oparty na Markdown.

Wady:

  • Krzywa nauki: Może być trudny do opanowania dla nowych użytkowników.
  • Brak aplikacji mobilnej: Ograniczone wsparcie dla urządzeń mobilnych.

Obsidian
Zalety:

  • Lokalne przechowywanie danych: Notatki przechowywane są lokalnie na dysku użytkownika.
  • Zaawansowane funkcje linkowania notatek: Możliwość tworzenia wzajemnych powiązań między notatkami.
  • Bogata biblioteka wtyczek: Możliwość dostosowania aplikacji do własnych potrzeb za pomocą licznych wtyczek.
  • Interfejs oparty na Markdown: Również posiada prosty i intuicyjny interfejs oparty na Markdown

Wady:

  • Krzywa nauki: Dla nowych użytkowników interfejs może być przytłaczający.
  • Słaba aplikacja mobilna: Aplikacja jest słabo dostosowana do pracy na tak małych ekranach jakie posiadają smartphone’y.

Ja wybrałem Obsidian, choć długo wahałem się między nim a Logseq. Zdecydowałem się na Obsidian, ponieważ chciałem mieć wszystko u siebie na dysku, a w 99% przypadków buduję i używam mojej bazy wiedzy w domowym zaciszu. Koniec oklepanych folderów, przyszedł czas na uporządkowany chaos!

Nie wpadnij w pułapkę…

Wybrałeś aplikację, zaczynasz działać i przechodzisz z papieru na komputer. Jakie są ryzyka? Pierwsza sprawa – teraz masz wszystko w jednym miejscu, wszystko wydaje się prostsze, więc zaczynasz zbierać. Zamiast uporządkować ciekawe informacje, zaczynasz pochłaniać ich dużo więcej, przez co Twój drugi mózg nie będzie działać tak, jak powinien. Ockniesz się za miesiąc lub dwa z masą nieuporządkowanych artykułów i nie będziesz pamiętać, po co je zapisałeś i co chciałeś z tego wyciągnąć. Na to nie ma złotego środka – musisz sam nad sobą panować.

Drugim ryzykiem jest słynny przerost formy nad treścią. Obsidian ma ogromną głębię i możliwości personalizacji. Przyjdzie moment, w którym usiądziesz i zaczniesz się zastanawiać, czy na pewno porządkujesz wszystko idealnie. Czy wszystko jest tak, jak być powinno? Linia odgradzająca efektywność od efektowności jest cienka i bardzo łatwo ją przekroczyć. W rezultacie możesz skończyć z pięknym programem, pełnym kolorów, szablonów i różnych wymyślnych funkcji, ale bez merytorycznej treści w środku.

Pamiętaj, dążysz do ideału, ale nie licz, że go osiągniesz. Lepiej mieć gorszy system, ale działający długi czas, niż co miesiąc wywracać wszystko do góry nogami, bo u kogoś widziałeś coś ciekawego i chcesz to mieć u siebie. Nie chodzi o to, żeby nie zmieniać i nie ulepszać, ale jeśli chcesz wprowadzić coś nowego, nie poświęcaj godzin lub dni, żeby wdrożyć to we wszystkich notatkach. Zacznij wprowadzać nowości dla swoich nowych notatek, a z czasem, jeśli będziesz używać tego, co już znajduje się w Twoim skarbcu, będziesz mógł odświeżyć każdą starą notatkę, do której zajrzysz prędzej czy później.

Są też bardziej przyziemne i oczywiste ryzyka. Nie trzymaj w takim miejscu haseł, numerów kont itp., szczególnie jeśli wybierzesz program działający w chmurze.

3, 2, 1, Start!

Wybór za Tobą, więc zaczynamy. Niezależnie od tego, czy wybrałeś Obsidian, czy inny program, pierwszy krok jest zawsze ten sam – zainstaluj aplikację lub utwórz konto. Dalsza część będzie dotyczyć wyłącznie Obsidiana. Jeśli wybrałeś inny program, musisz poszukać odpowiednich informacji gdzie indziej, ale zachęcam do dalszej lektury. Może znajdziesz coś ciekawego, a jeśli nie, to przynajmniej zobaczysz, jak działa Obsidian.

Pobraliśmy i zainstalowaliśmy nasz program. Teraz uruchamiamy go i wybieramy miejsce, gdzie znajdzie się nasz vault (czyli nasza baza). Najlepiej utworzyć nowy folder, ponieważ znajdzie się tam kilka różnych elementów. W wybranej lokalizacji pojawi się folder z ustawieniami programu, gdzie będą zapisane wszystkie wtyczki, motywy itd. Ponadto, jeśli w naszej bazie pojawią się foldery, to również będą one w tej lokalizacji (jakie foldery proponuję utworzyć, dowiesz się za chwilę). Jeśli nie, w tym miejscu będą zapisane nasze notatki w formacie .md.

Obsidian start menu.
Menu startowe – Obsidian.

Następnie możesz zacząć tworzyć. Edytor tekstu wygląda nieco inaczej niż Word – działamy w formacie Markdown. Jeśli to Twój debiut z Markdownem, polecam poświęcić 5 minut na przeczytanie jakiegoś poradnika. Najważniejsze rzeczy wymienię poniżej:

  • Hashtagi: W zależności od liczby znaków “#” tworzymy różne poziomy nagłówków. Jeden hash to największa czcionka, a każdy kolejny hash zmniejsza rozmiar nagłówka. Hash musi być oddzielony od tekstu spacją, inaczej tworzymy tag, a nie nagłówek. Wszystkie nagłówki pojawiają się również w oknie nawigacji notatki.
  • Gwiazdki: Używane do pochylania i pogrubiania tekstu. Jedna gwiazdka pochyla, dwie pogrubiają, a trzy robią obie te rzeczy jednocześnie.
  • Nawias kwadratowy: Podwójny nawias kwadratowy to absolutny gamechanger. Dzięki niemu linkujemy się do innej notatki, istniejącej lub nie.
  • Myślnik i spacja: Tworzą listę punktów.
  • Cyfra z kropką: Tworzą listę numerowaną.

Jest jeszcze mnóstwo innych opcji, o których można poczytać w dokumentacji Obsidiana, do czego gorąco zachęcam. Te wymienione powyżej w zupełności wystarczą na start.

Formatowanie tekstu w pliku markdown.

Funkcje, które musisz znać!

Najważniejsza podstawa, która wyróżnia ten program to wspomniane wcześniej linkowanie notatek. Dzięki tej funkcjonalności nie potrzeba nam grupowania notatek w foldery i zastanawiania się czy jakaś notatka bardziej pasuje do kategorii A czy do kategorii B. Po prostu tworzysz daw linki do MOC’a A i MOC’a B i sprawa załatwiona. Niby to takie proste i intuicyjne, ale jak widać nie jest to standardem.

Ale co dalej z tymi linkami? Tutaj właśnie pojawia się widok grafu, dzięki któremu możemy przejrzeć nasze materiały niczym neurony połączone w mózgu. W tym miejscu tkwi największy benefit linków – oczywiście, możesz przechodzić wewnątrz notatek między nimi, ale wtedy nie widzisz całości. Natomiast na grafie, po utworzonych połączeniach, możesz praktycznie natychmiast przejść z notatki A do notatki B, C, D, czy nawet Y. Jednym zdaniem, widzisz wszystkie możliwe powiązania.

Dodatkowo możesz podświetlić notatkę i wszystkie jej powiązania, przeszukiwać graf lub włączać widok grafu tylko dla wybranej grupy. Możliwości jest wiele, ale przytoczmy jakiś przykład: Uczysz się Scali i jesteś w obszarze typowania. Masz już w swojej bazie wiedzy rozpisany temat typowania w Pythonie, który znasz bardzo dobrze. Możesz połączyć obie notatki i nie będziesz musiał przekopywać się przez cały stos treści. Utrwalając wiedzę, masz od razu odniesienie do przykładów z obu języków.

Widok grafu -linkowanie notatki z formatowaniem (Markdown) do dwóch innych notatek (Nowa notatka i Stara notatka).

Innym przykładem może być notatka teoretyczna na temat przetwarzania strumieniowego. Taką notatkę możesz linkować do notatek na temat konkretnych narzędzi wykorzystujących przetwarzanie strumieniowe, które będą zawierać przykłady, fragmenty kodu itd.

Również ciekawym sposobem wykorzystania połączeń w nauce tak obszernego tematu jak Big Data może być rozpisanie case study i połączenie go z konkretnymi technologiami i koncepcjami. W tym przypadku jesteś o jedno kliknięcie od gotowego przykładu zastosowania konkretnego narzędzia..

Oczywiście, jeśli nie chcesz używać linkowania, zawsze możesz pozostać przy starych, sprawdzonych folderach. Foldery nie są aż tak złe, jak je przedstawiam w tej krótkiej serii artykułów. Moim sposobem wykorzystania folderów jest grupowanie konkretnych elementów bazy wiedzy. Posiadam folder na załączniki (zapisują się w nim wszystkie wklejane obrazy), folder na dziennik, kolejny, w którym mam wszystkie Maps of Content (MOC), folder na notatki i projekty. Ostatni, i w sumie najważniejszy, jest folder na szablony (templates). Oczywiście, wykorzystanie klasycznych folderów można łączyć w dowolny sposób z linkowaniem – możemy posiadać połączone notatki z wielu różnych folderów.

Zestaw moich folderów.



Kolejną funkcją, która bardzo usprawnia pracę, są szablony. W tym aspekcie nie ma nic odkrywczego – po prostu możesz tworzyć szablon na każdą okazję. Jak zwykle proponuję zachować umiar. Polecam szablon na notatki teoretyczne, case study, projekty, szablon MOC i szablon na notatki do dziennika. Podczas tworzenia nowej notatki możesz wywołać dany szablon, a wtedy pozostaje Ci tylko wypełnienie treścią wcześniej zaprojektowanego układu. Co według mnie jest totalnym minimum, które powinno znaleźć się w szablonie? Trzy rzeczy: tytuł, up (czyli notatka nad tą notatką – najczęściej MOC lub jakaś notatka zbierająca wszystkie z konkretnego obszaru, np. Scala) oraz pokrewne notatki, gdzie dodamy linki do wszystkich powiązanych notatek.

Przykładowy szablon notatki projektowej.

Co jeszcze oferuje nam Obsidian?

  • Tagowanie: Można używać tagów do dodatkowego oznaczania swoich notatek, ale nie jest to konieczne.
  • Wyszukiwanie i filtrowanie: Mamy do dyspozycji zaawansowaną wyszukiwarkę, która umożliwia wyszukiwanie po ścieżce, tagach, nazwach plików, słowach kluczowych itd.
    Wyszukiwarka notatek.
  • Synchronizacja i publikacja: Opcje płatne, które pozwalają na synchronizację notatek na wielu urządzeniach. Można to zastąpić darmowym dyskiem w chmurze typu Google Drive lub za pomocą Git’a. Publikacja pozwala na wrzucanie pojedynczych notatek lub całych grup na Obsidian Publish, gdzie każdy posiadający link może poruszać się po notatkach.
  • Canvas: Wizualne organizowanie notatek, przydatne do tworzenia map myśli.
  • Code snippets: Bardzo przydatna funkcja do nauki programowania. Można pisać kod w przeznaczonym do tego formatowaniu, wspierane są różne języki, w tym Python, SQL, Java.
    Code snipet.
  • Podgląd na żywo: Mamy tryb czytania i pisania, a także podgląd na żywo, gdzie tekst natychmiast się formatuje podczas pisania w Markdown.
  • Zaawansowane formatowanie: Poza tekstem można tworzyć tabele, wzory matematyczne itd.
  • Obsługa wielu paneli jednocześnie: Możliwość otwarcia wielu notatek oraz podglądu widoku grafu jednocześnie.
  • Tryb skupienia: Możliwość włączenia trybu skupienia, który wyświetla tylko notatkę, ograniczając wszystkie inne okna typu graf, wyszukiwanie, struktura folderów itd.

I mnóstwo innych funkcji, o których możesz poczytać w dokumentacji lub obejrzeć na YouTube. Ponadto Obsidiana można rozbudowywać za pomocą wtyczek społeczności, których są tysiące. To jednak temat na inny raz. 

Jeśli nie wszystko wydaje Ci się w 100% jasne, nic nie szkodzi. Działaj i wracaj do tego artykułu w trakcie, wtedy na pewno wyciągniesz z niego jak najwięcej.

Mam nadzieję, że po przeczytaniu obu artykułów o budowaniu bazy wiedzy posiadasz już wystarczającą ilość informacji, aby usiąść przed komputerem już dziś i zacząć działać. Wyposażyłem Cię w ogólny zarys bazy wiedzy, przedstawiłem najważniejsze koncepcje, funkcjonalności oraz plan, jak zacząć. Więc nie czekaj – zacznij już teraz, ale pamiętaj, żeby nie wpaść w żadną z pułapek!

Koniecznie daj znać, jak podobała Ci się ta mini seria artykułów i czy będziesz budować swoją bazę wiedzy! Znajdziesz mnie również na LinkedIn, więc jeżeli chcesz się podzielić spostrzeżeniami, o coś zapytać, a może masz jakieś uwagi, to pisz – chętnie zamienię z Tobą parę zdań.

Na koniec jeszcze dwa krótkie wyjaśnienia. Ten artykuł nie był sponsorowany przez twórców aplikacji Obsidian.md. Kolory pokazane na załączonych grafikach są efektem motywu “Blue Topaz”.

Zostań na dłużej z RDF!

Zostań na dłużej z Riotech Data Factory! Dołącz do newslettera “Na Szlaku Big Data”, żeby kompleksowo eksplorować świat wielkich danych. Jak widać, Big Data to nie tylko programowanie, ale także umiejętności “miękkie”, takie jak efektywna nauka, czy katologowanie swojej własnej wiedzy!

Sięgnij po swój Second Brain! Zainwestuj kilka minut, a zyskasz narzędzie do osiągania wielkich celów.

Sięgnij po swój Second Brain! Zainwestuj kilka minut, a zyskasz narzędzie do osiągania wielkich celów.

Czym jest “Personal Knowledge Management”? Jak podejść do budowania swojej własnej bazy wiedzy? O tym wszystkim w dzisiejszym artykule Wojtka Zdziebkowskiego – członka newslettera “Na Szlaku Big Data”.

Jeśli szukasz sposobu, aby gromadzona wiedza nie była marnowana, to jesteś w znakomitym miejscu!

O co w ogóle chodzi z PKM?!

Personal Knowledge Management – bo takie jest rozwinięcie tego skrótu – to system zbierania, organizowania i przetwarzania informacji. Założeniem jest stworzenie swojej osobistej bazy wiedzy w celu sprawniejszego wyszukiwania i wykorzystania zebranych wcześniej informacji. Ciężko stwierdzić, kiedy narodziło się pojęcie Osobistej Bazy Wiedzy. Jednak dziś w erze komputeryzacji ludzkość jest wręcz bombardowana tysiącami różnych wiadomości, natomiast wiedza nigdy nie była tak łatwo dostępna.

Dziś od materiałów naukowych, artykułów, kursów itd. dzieli nas kilka kliknięć myszką, czasami również większa bądź mniejsza kwota. W takich czasach, proces prostego zbierania oraz przetwarzania informacji, lub narzędzia, żeby ten proces stał się przystępny są na wagę złota. W roku 2014 z nowoczesną wersją PKM wyszedł do świata ekspert od produktywności, Tiago Forte.

Koncepcja promowana przez Tiago nosi nazwę Second Brain (drugi mózg), czyli system rozszerzający nasz fizyczny umysł o dodatkową pojemność. Założeniem jest posiadanie systemu cyfrowego lub analogowego, gdzie będziemy zbierać i organizować informacje, aby móc je w dowolnym momencie bez problemu wykorzystać. Second brain uzupełnia nasz umysł i daje łatwy dostęp do odpowiednio odrobionych informacji, bez strachu, że w najbardziej potrzebnym momencie będziemy mieć pustkę w głowie. W całej zawiłości chodzi głównie o możliwość prostego przetwarzania informacji, a następnie łączenia je w logiczne powiązania w dowolnym momencie.

Prekursorem systemu zarządzania wiedzą był natomiast Niklas Luhmann, autor ponad 70 książek i 400 artykułów. System opracowany przez Luhmanna nosi nazwę Zettelkasten i pomógł twórcy, nie tyle robić dobre notatki, co przyswoić całą zgromadzoną wiedzę. W końcu to jest chyba najważniejsze? Nie ilość zgromadzonej wiedzy, ale możliwość swobodnego korzystania z niej.

Niklas Luhmann notował wszystkie swoje idee i pomysły na pojedynczych kartkach papieru i nadawał im identyfikatory. Każda notatka poza swoim identyfikatorem miała też identyfikator wszystkich notatek spokrewnionych. A te grupy połączonych notatek trzymane były blisko siebie, żeby zawsze mieć do nich dostęp. Czasy Luhmanna były jeszcze mocno analogowe, w sieci można zobaczyć nagranie, na którym autor prezentuje swój system zettelkasten, wygląda to co najmniej przerażająco… Dzisiaj to wszystko można robić cyfrowo, bez setek szafek i milionów kartek, więc może warto z tego skorzystać.

Niklas Luhmman wraz ze swoim archiwum Zettelkasten. Źródło: https://bilder.deutschlandfunk.de

Niklas Luhmann wraz ze swoim archiwum Zettelkasten.
Źródło: https://bilder.deutschlandfunk.de

Czy Zettelkasten to to samo co second brain? Nie, ale są to bardzo powiązane tematy. Zettelkasten ma swoje konkretne zasady, a Second Brain to pojęcie bardziej ogólne i elastyczne, ale też jakieś zasady posiada, o nich jednak później.

Gdzie podział się mój system?

Robię notatki zbieram informacje i ciekawe materiały, po co mi w ogóle system?

To teraz się zastanów:

  • ile razy wracałeś do swoich notatek?
  • Czy wiesz, gdzie co zapisałeś?
  • A ile masz otwartych kart w przeglądarce z czymś ciekawym na potem?

Ja niechlubnie się przyznam, że prawie 70, ale dopiero pracuję nad moim second brain. To jest właśnie problem, którego może na pierwszy rzut oka się nie dostrzega. Dziesiątki kart na potem, setki porozrzucanych notatek w różnych miejscach czy tysiące pozaginanych rogów kartek albo podkreśleń w książkach. Tylko dlatego, że coś wydaje Ci się ciekawe podejmujesz pierwszy krok, czyli zaznaczasz i zostawiasz na potem.

W końcu po długim czasie przychodzi “potem”. Raz na pół roku nudzisz się tak bardzo, że zabierasz się za porządki. Bierzesz w rękę pierwszą kartkę, odpalasz jedną z otwartych zakładek i patrzysz myśląc nieśmiało “po co ja to napisałem/otwarłem, eee niepotrzebne”. W ten sposób wyrzucasz do kosza kilka kartek i zamykasz parę otwartych kart, a przy okazji te minuty a może godziny, które w skali roku wyrzucasz do kosza. Nie potrafisz sobie przypomnieć, jaki miałeś pomysł na to wszystko wtedy, kiedy zdecydowałeś się zostawić te informacje na potem.

Baza wiedzy może być przedstawiona w formie grafu.

A co, jeśli masz system? Zaznaczasz to co Cię interesuje, otwierasz zeszyt, telefon, komputer cokolwiek. Odpalasz odpowiednią aplikacje albo chwytasz za długopis. Masz system, więc wiesz, jak powinna wyglądać struktura konkretnej notatki. Ba, masz nawet szablon i to nie jeden! Pierwszy na ciekawostki, kolejny na rzeczy zabawne, inny na rzeczy, których chcesz się nauczyć. A może tylko jeden? Może tak, to zależy od Ciebie, bo to Twój system.

Więc otwierasz swój template i cyk, tytuł, źródło, kategoria, na koniec treść tego co cię zainteresowało. Może skopiowana do dalszej obróbki, a może już zredagowana. Trwało to chwile, ale teraz posiadasz notatkę z przypisaniem do kategorii, ze źródłem, do którego możesz wrócić, może z połączeniem do jakiejś konkretnej grupy notatek. Co Ci to daje? Jeśli będziesz potrzebował jakiejś informacji najpierw otworzysz swoją bazę wiedzy. Masz tam już zapisane zagadnienie, którego szukasz.

Najprawdopodobniej, taki jest cel, jest to już wiedza obrobiona przez Ciebie. Nie musisz przebijać się przez ściany artykułów ani pozycje wyszukiwarki. Już posiadasz to co potrzebujesz i możesz to łatwo znaleźć, na pewno dużo łatwiej niż w dziesiątkach otwartych kart na potem, albo stosie notatek. I co dalej? Bierzesz to co chcesz i idziesz z tym w świat!

Czas na zasady…

Wspominałem, że koncepcja second brain ma swoje zasady. Może jeszcze tego nie wiesz, ale wszystkie zdążyłeś już poznać. W wersji oryginalnej noszą zgrabny skrót CODE, czyli:

  1. capture – Zbierasz informacje
  2. organize – Przetwarzasz je i organizujesz, w swojej bazie chcesz tylko to co jest najważniejsze, żadnych śmieci
  3. distill – Przychodzi potrzeba, więc szukasz i wyciągasz oczekiwaną informację
  4. express – Cytując zdanie z poprzedniego akapitu: “Bierzesz to co chcesz i idziesz z tym w świat!”. Czyli masz już informację, której potrzebowałeś i ją wykorzystujesz.

To są właśnie główne zasady osobistej bazy wiedzy.

Zaprojektuj swoją mapę!

Na koniec tej części przybliżymy sobie dwie dodatkowe koncepcje pozwalające lepiej organizować swoje notatki. Chodzi o metodę PARA i MOC.

PARA jest metodą organizacji bazy wiedzy opracowaną przez wspomnianego wcześniej prekursora koncepcji second brain – Tiago Forte, polega na podziale notatek na cztery kategorie:

  1. Projekty (projects) – listy zadań powiązane z celami i terminami.
  2. Obszary odpowiedzialności (area of responsibilities) – obszary twoich odpowiedzialności np. rodzicielstwo, finanse, gotowanie
  3. Źródła (resources) – notatki związane z zainteresowaniami
  4. Archiwum (archive) – wszystkie nieużywane rzeczy z poprzednich kategorii

Istotą metody PARA jest proste, szybkie i uniwersalne kategoryzowanie notatek. Ponadto autor forsuje podejście projektowe do każdego zadania lub problemu jaki napotkasz. Na czym to polega? Na rozbiciu każdego zadania na jak najmniejsze mierzalne kroki, aby unikać zabierania się do przedsięwzięć, które nas przytłoczą.

Dla przykładu chcesz się nauczyć angielskiego. Jak do tego podejdziesz? Możesz wziąć listę zadań i wpisać punkt: nauczę się angielskiego. Kiedy będziesz wiedzieć, że cel został zrealizowany? Może dasz sobie spokój po tygodniu, kiedy nauczysz się przedstawiać, bo stwierdzisz, że to jest to co chciałeś umieć. Może wrócisz do niego za dziesięć lat będąc na granicy perfekcji, mając świadomość, że ciągle możesz iść krok dalej.

Przykład notatki z mapą

Drugim sposobem jest rozbicie nauki angielskiego na mniejsze zadania, najlepiej z terminami, aby móc monitorować swój postęp. Czyli bierzesz kartkę, notes lub otwierasz aplikacje w telefonie i piszesz: nauczę się Present Simple w dwa tygodnie, następnie nauczę się 20 słów do końca miesiąca i do końca przyszłego miesiąca nauczę się Present Continuous. Główną zaletą drugiego podejścia jest to, że masz przed sobą małe mierzalne kroki i widzisz swój postęp w realizacji celu. Dodatkowo rozbijając zadanie na mniejsze kroki, tworzysz sobie prosty plan działania. Dzięki temu wiesz, co jest jeszcze przed Tobą, a co już za Tobą.

Kolejną i osobiście moją ulubioną formą tworzenia notatek jest tak zwany Map of content w skrócie MOC. Mówi się, że są trzy typy twórców notatek: Bibliotekarz, Architekt i Ogrodnik. Bibliotekarz to osoba zbierająca różne informacje. Architekt jest to osoba, która wszystko planuje. Natomiast Ogrodnik jest to osoba dbająca, aby jej notatki się rozrastały.

Właśnie notatkowi ogrodnicy stworzyli koncepcje MOC, która jest prosta, przejrzysta i pozwala na nieograniczony rozrost Twoich notatek, co może, ale nie musi być zgubne. Także staraj się zawsze zachować zdrowy rozsądek. Jak już wspomniałem koncepcja ta jest prosta, a nawet bardzo prosta. Jednak uważam, że nadaje się głównie do stosowania cyfrowo, a nie analogowo. Najważniejszym elementem “mapy kontentu” jest, jak sama nazwa mówi – mapa.

W założeniu każdy obszar zainteresowań powinien mieć swoją mapę, czyli taką notatkę tytułową. W tej mapie znajdziemy wszystkie powiązane z konkretnym tematem materiały. Dla przykładu interesuje nas gotowanie, więc tworzymy MOC Gotowanie. Każdą tworzoną notatkę z tematu gotowania linkujemy pośrednio lub bezpośrednio z naszą główną notatką MOC Gotowanie. Teraz pewnie myślisz “o gościu odkrył co to jest folder”.

Nic bardziej mylnego, całą przewagą mapy nad folderem jest to, że notatka nie musi być przypisana tylko do jednej mapy. Może być przypisana do każdej mapy, z którą coś ją łączy. Tworzymy notatkę o garnkach ze stali nierdzewnej i wrzucamy ją do naszej mapy MOC Gotowanie. Jesteśmy jednak wielkimi fanami materiałoznawstwa i posiadamy też mapę MOC Materiały. Tam też ląduje link do naszej notatki.

Dlatego też lepiej sprawdzi się forma cyfrowa niż analogowa, bo nie będziemy przecież kserowali notatki, żeby umieścić ją w dwóch mapach. W wielu aplikacjach do robienia notatek znajdziemy już opcję linkowania. Ponadto dobrą praktyką jest stworzenie czegoś w rodzaju mapy map, jakkolwiek to brzmi. Czyli tworzymy główną notatkę np. HOME i linkujemy do niej wszystkie nasze mapy. Dzięki temu nawigacja po naszej bazie jest prostsza i bardziej intuicyjna.

Obie koncepcje w większym lub mniejszym stopniu można ze sobą łączyć. Najważniejsze jest jednak tworzenie użytecznych notatek, dlatego idź i twórz! Nie bój się eksperymentować, łączyć w całość różne metody i tworzyć swoje własne zasady. Twoje notatki powinny służyć przede wszystkim Tobie z przyszłości.

Już niedługo ciąg dalszy…

Zostań na dłużej z Riotech Data Factory! Dołącz do newslettera “Na Szlaku Big Data”, żeby kompleksowo eksplorować świat wielkich danych. Jak widać, Big Data to nie tylko programowanie, ale także umiejętności “miękkie”, takie jak efektywna nauka, czy katologowanie swojej własnej wiedzy!

Już niebawem ciąg dalszy artykułów o bazie wiedzy. Dołącz do newslettera, aby nie przegapić!

Źródła i przydatne linki:

https://fortelabs.com/blog/the-4-levels-of-personal-knowledge-management/

https://www.buildingasecondbrain.com/foundation

https://medium.com/illumination/the-power-of-personal-knowledge-management-a-journey-from-chaos-to-clarity-c62474001029

https://fortelabs.com/blog/basboverview/

https://obsidian.rocks/maps-of-content-effortless-organization-for-notes/

Projekt Big Data. Jak stawiać pierwsze kroki i jak się w nim odnaleźć?

Projekt Big Data. Jak stawiać pierwsze kroki i jak się w nim odnaleźć?

Dziś nowy odcinek podcastu “Big Data Po Polsku”! Opowiadam o projektach Big Data – jakie są, oraz jak stawiać pierwsze kroki, żeby po kilku tygodniach być wartościowym członkiem.

Checklista “do ogarnięcia w nowym projekcie” (self-onboarding ;-))

Poniżej wklejam listę elementów “do ogarnięcia”:

  1. Podejście (pełna mobilizacja, pokora, cierpliwość, ciekawość)
  2. Poznanie od ogółu do szczegółu – organizacji projektu, architektury projektu, poszczególnych modułów.
  3. Dostępy do kluczowych miejsc
  4. Lista odnośników do środowisk, repozytoriów, serwisów, storage’y itd.
  5. Procedura pracy na gicie oraz ze środowiskami.
  6. Dobre poznanie orkiestratora, jako centralnego miejsca systemu.
  7. Komunikacja w zespole
  8. Pierwsze zadanie możliwie szybko (ale nie za szybko).
  9. Lista osób z zespołu i ich kompetencji.
  10. Wizja rozwoju projektu – powrót do początku i test “czy rozumiem o co chodzi w projekcie?” oraz “ile pracy przed nami?”
Jak nauczyć się Apache Solr? Krok po kroku [Mapa drogowa]

Jak nauczyć się Apache Solr? Krok po kroku [Mapa drogowa]

Apache Solr to technologia fulltext search. Jedna z dwóch dominujących (obok Elasticsearch), dzięki którym zbudujemy zaawansowane wyszukiwarki. Niestety, w internecie niewiele jest miejsc, z których można się uczyć. Jednak warto! Solr to nietypowa technologia, bardzo ciekawa, a przy jej pomocy można zbudować wspaniałe rzeczy.

W dzisiejszym artykule chciałbym Ci przedstawić plan na to co zrobić, żeby nauczyć się Solr. Krok po kroku. Nie będę pisał o technikaliach, tylko dam swoistą mapę. Wraz z kilkoma wskazówkami;-). Kawa zaparzona? To lecimy! Zabieram Cię w “wyszukiwarkową podróż”;-).

Odcinek 1 – ogólna budowa Solr

Uwielbiam zaczynać “od ogółu do szczegółu”. Dlatego pierwsze co powinieneś poznac, to ogólna budowa Solr.

Mowa tu o następujących rzeczach:

  1. Co to w ogóle jest Solr?
  2. Ogólna budowa – architektura, struktury logiczne. Czym jest Zookeeper, czym jest Solr Cloud?
  3. Jak działa configset.

Odcinek 2 – Solr UI

W drugim odcinku naszej drogi warto przysiąść chwilkę nad Solr UI. To podstawowe miejsce pracy dla każdego Solrowca. Nie musisz tu siedzieć niewiadomo ile, po prostu zapoznaj się jakie możliwości daje Ci to narzędzie.

Kilka najważniejszych rzeczy:

  1. Ogólny przegląd
  2. Logi
  3. Monitoring fizycznych maszyn
  4. Tworzenie kolekcji
  5. Schema Designer
  6. Analiza w kolekcji

Odcinek 3 – Indexing

Indexing to proces zapisywania danych do Solr. Oczywiście nie jest to samo “upload” i heja!

W tym kroku warto pochylić się nad takimi rzeczami jak:

  1. Jak dane są układane, że mogą potem być bardzo szybko wyszukiwane?
  2. Jak indeksować dane pod względem technicznym? Narzędzie bin/post, requesty HTTP
  3. Indeksacja różnych formatów danych, ze szczególnym uwzględnieniem XML

Odcinek 4 – Przeszukiwanie

No wreszcie! Czas się nauczyć, jak się przeszukuje Solr. To oczywiście temat rzeka. Polecam się nie zagrzebać, tylko zrozumieć podstawy, najważniejsze funkcjonalności i pójść dalej. A na koniec zbudować sobie projekt z większymi zasobami i bawić się zaawansowanymi query.

  1. Ogólna budowa query. Co to jest, jak to się robi?
  2. Common Query Parameters
  3. Standard Query Parser i inne parsery
  4. Wildcard Search
  5. Fuzzy Search
  6. Proximity Search
  7. Zakresy/przedziały
  8. Facety

Odcinek 5 – SolrJ

W tym miejscu polecam zapoznać się z tym w jaki sposób komunikować się z Solr przez Javę. Pozwoli Ci to budować zaawansowane wyszukiwarki. Co więcej – jeśli opanujesz Solr w Javie ze Spring Bootem, znacząco zwiększysz swoją atrakcyjność na rynku.

Odcinek 6 – zbierz wszystko w całość i zbuduj coś wspaniałego!

Teraz wiesz już wszystko, co należy wiedzieć. Chociaż to oczywiście dopiero pewien szkielet. Czas zacząć go wypełniać treścią. Poszukaj dodatkowych mechanizmów, a przede wszystkim – zbuduj przydatny, pełnoprawny projekt. To pozwoli Ci się zetknąć z tym jak Solr działa w praktyce! No i będziesz mieć coś, czym się pochwalisz na rozmowie rekrutacyjnej czy na LinkedIn.

Swoją drogą… jeśli zrobisz coś fajnego, napisz mi na marek.czuma@riotechdatafactory.com!

Jeśli chcesz pójść zgodnie z tą mapą… mam dobrą wiadomość!

Bardzo istotna kwestia. Jeśli podoba Ci się ta droga, tydzień temu zbudowałem kurs online, który ją “implementuje”.

Przejdziesz tam wszystkie te kroki (łącznie z projektem!), a nawet więcej!

Pokażę m.in. jak wykrywać w jakim języku jest napisana treść. Jak dodać zamianę walut czy jak analizować język polski!

A to wszystko bez stresu, bez spiny, w Twoim zaciszu domowym;-).

Sprzedaż kursu zamykam 10 listopada 2023!

Kliknij w link i kup dostęp.

Zapisz się na newsletter główny i otrzymuj dostęp do info prosto od RDF;-)

 

Loading

Jak zacząć projekt w Big Data? Instrukcja onboardingu

Jak zacząć projekt w Big Data? Instrukcja onboardingu

Dziś bardzo, bardzo krótki wpis. W nawiązaniu do odcinka(20) podcastu “Big Data Po Polsku”. Poniżej przedstawiam krótką instrukcję – co zrobić, gdy wchodzimy do projektu? Jak się w nim odnaleźć? Czego odczekiwać i co skompletować w ciągu pierwszego tygodnia/dwóch?

Onboarding w projekcie Big Data. Instrukcja

  1. Ogólny cel + architektura.
  2. Poszczególne moduły + repozytoria do nich. Kluczowe mechanizmy modułów.
  3. Moduły a infrastruktura.
    • Gdzie są dane?
    • Jak uruchamiane są joby?
    • Gdzie są logi i jak je przejrzeć?
    • (jeśli jest Spark) Gdzie jest History Server?
  4. Linki do kluczowych miejsc. Repozytoria, serwisy, boardy (jira).
  5. Jak wygląda proces deploymentu?

 

A teraz – zapraszam do subskrypcji;-)

 

Loading

Jak zacząć pracę w Big Data? Moja Historia

Jak zacząć pracę w Big Data? Moja Historia

Jeśli myślisz o pracy w branży Big Data to sądzę, że zainteresuje Cię to, co chcę opowiedzieć.

W tym artykule cofniemy się do zeszłego roku (2022). Wyjaśnię, jak znalazłem rozwiązanie na wybranie odpowiedniej technologii i z jakimi przeszkodami się zmagałem szukając “furtki” do świata Big Data;-).

Zanim usłyszałem o Big Data

Początek roku był mglisty ze względu na to, że miałem kilka podejść do różnych technologii. Już wcześniej zdobyłem podstawowe umiejętności programowania obiektowego w Pythonie. Znałem również podstawy webdevu oraz relacyjnych i nierelacyjnych baz danych. W pracy używałem zarówno Pythona, jak i Javy do realizowania testów automatycznych, które pisałem i dokumentowałem (pozdro shared service). Ciągnęło mnie do wszystkiego, co się świeciło, w związku z czym zacząłem nawet czytać o Ruscie, myśląc o tym żeby zrealizować w nim pracę inżynierską (na szczęście odrzuciłem ten pomysł odpowiednio wcześnie).

Na przełomie drugiego kwartału dostałem zaproszenie do zaangażowania się w projekcie Javowym, ale ta technologia mnie przerosła – brak rzeczywistego doświadczenia w webdevie oraz poziom skomplikowania aplikacji z pewnością odegrał tu swoją rolę.

Mijał czas, a ja wciąż nie wiedziałem w którą stronę się rozwijać. Byłem niesamowicie sfrustrowany – i słusznie. Wpadłem na pomysł, aby do realizowania projektów wykorzystać równie pragnących (jak wtedy myślałem) rozwoju znajomych. Średnio to wyszło, ale cieszę się, że mimo mojej ówczesnej natarczywości jeszcze ze mną rozmawiają. Czas nieubłaganie mijał, a obrona mojej pracy inżynierskiej zbliżała się wielkimi krokami, więc postanowiłem działać. Z wykorzystaniem Flaska oraz Selenium stworzyłem WATS, czyli Web Automation Testing Simplified. Aplikację, która potwierdziła naszą tezę, mówiącą o tym, że testy automatyczne tworzy się dość łatwo i może to robić osoba niekoniecznie techniczna. I co najlepsze, działa i wygląda!

Dane, machine learning i… kolejne frustracje

Gdy napisałem aplikację do pracy inżynierskiej, poczułem że Python nie jest wcale takim prostym narzędziem (to złudne przeświadczenie narosło we mnie, kiedy próbowałem nauki języków kompilowanych). Aby zgłębić bardziej ten język postanowiłem zainteresować się uczeniem maszynowym. Nie rozumiałem matematyki idącej za algorytmami uczenia maszynowego, ale samo sprzątanie danych i robienie z nich rzeczywistego użytku w postaci wykresów zrobiło na mnie ogromne wrażenie. Postanowiłem bardziej się w to zagłębić. Spojrzałem ile zarabiają MLOpsi. Chciałem tyle samo. Zacząłem cisnąć temat. Zrobiłem certyfikaty Azure, aby zapoznać się bardziej z tematem chmur, danych oraz AI (były za darmo kiedy się uczęszczało na Virtual Training Day, kiedyś to było…). Jednak stanąłem przed ścianą, której nie mogłem pokonać.

Brak wiary w swoje możliwości, który wynikał z niezrozumienia algebry, nasilił się jeszcze bardziej wraz z realizowaniem zaawansowanych technik wytwarzania modeli uczenia maszynowego. Chciałem wejść w temat, jednak nie mogłem. Byłem na siebie zły z powodu wyboru uczelni, ponieważ nie poszedłem na Informatykę na studia dzienne. Postanowiłem, że powinienem obrać inną ścieżkę.

Zdając sobie sprawę że nie zostanę Data Scientistem, postanowiłem się uczyć metodologii DevOpsu. Jenkins, Docker, K8s, Ansible. Szło naprawdę dobrze, nawet ogarnąłem ładnie Jenkinsa oraz Dockera, ale odczułem, że pociąg już odjechał, a bez Kubernetesa nie ma co podchodzić do rekrutacji na juniora. Nie miałem też nikogo, kto mógłby mnie wyprowadzić z tego błędu.

Big Data – pierwsze spojrzenie

Znajomy raz podrzucił mi pomysł Data Engineeringu. Olałem to, bo pomyślałem że nic w tym ciekawego. Sprzątać dane, żeby inni mogli robić to, co jest najbardziej interesujące? To było w momencie, kiedy wypalałem się tematem ML, ale jeszcze nie upadłem przed ścianą.

Był późny grudzień, a ja nie miałem żadnych postanowień noworocznych. Na LinkedIn pojawił mi się artykuł Marka, który ogłaszał zapisy na szkolenie Fundament Sparka. Podczas nauki Data Science widziałem jakieś sugestie o Sparku, że ma bibliotekę do ML, do konkretnego Data Engineeringu oraz do analizy danych w zbiorach oraz streamowanych i że można go postawić na tanich kompach. Podobało mi się, że to narzędzie jest tak potężne, a na dodatek moja dotychczasowa edukacja pozwalała mi na łatwe wejście w temat. Postanowiłem, że zapiszę się na kurs. W końcu najlepsza inwestycja to ta w siebie. Nie myliłem się.

Po przerobieniu kursu zaintrygowany możliwościami Sparka, pythonową zwinnością i javową elegancją Scali w połączeniu z nowym dla mnie programowaniem funkcyjnym, podjąłem decyzję o dalszym rozwoju w stronę Data Engineeringu. Postanowiłem przerwać pasmo niepowodzeń i plątania się po technologiach.

Big Data – “all in”!

Ukończywszy kurs, Marek zaproponował mi udział w programie mentoringowym. Zależało mi na zmianie pracy, spróbowałem. Szeregowaliśmy wiedzę, siedzieliśmy na spotkaniach i podejmowaliśmy po kolei tematy, metodycznie. Jednocześnie, ciągle wysyłałem CV. Miesiąc po zakończeniu kursu dostałem propozycję pracy przy Sparku jako Big Data Support Engineer.

Uważam to za sukces mój, jak i Marka, bo bez uszeregowanej wiedzy przekazanej w dobry sposób i przygotowania pod względem technicznym do wykonywania tej pracy prawdopodobnie nie byłoby tak łatwo. Albo co gorsza, znowu bym się pogubił.

Dlatego, z pełnym przekonaniem, jeżeli się zastanawiasz czy mentoring to dobry pomysł, to uwierz mi, że jest. Nieważne na jakim poziomie zaawansowania, warto mieć opatrzność drugiej osoby, zwłaszcza z doświadczeniem.

Aktualnie, wraz z drugim uczestnikiem programu mentoringowego realizujemy projekt wykorzystujący realne dane (które sami pozyskujemy i przechowujemy :)) w środowisku okołoprodukcyjnym. Wykorzystujemy techniki, sposoby wytwarzania oprogramowania oraz standardy projektowe takie, jakie znajdziesz w realnym produkcyjnym środowisku. Oczywiście, głównym fundamentem jest Scala oraz Spark.

Pracuję również nad swoim blogiem technologicznym, w którym będę opisywać napotykane problemy, obserwacje oraz wnioski i mam nadzieję, że skończę to w niedalekiej przyszłości. 🙂

Zwieńczając to wszystko, bardzo się cieszę, że postawiłem na Fundament Sparka i Program Mentoringowy RDF – mocny kickstart dla kariery w danych.


A teraz czas na “Słowo od Mentora” 😉

Rafał od samego początku wykazywał OGROMNY zapał, był niezwykle pracowity i metodyczny. Bez tego nawet oferta podana na tacy nic by nie zdziałała;-).

Gratuluję! I… jestem dumny:-).

UWAGA! Jeśli Ciebie również interesuje mentoring…

Po prostu napisz na marek.czuma@riotechdatafactory.com.

Ułożymy razem plan i ruszymy z działaniem.

Akurat pojawiło się kilka wolnych miejsc, więc nie czekaj;-)

W poniższym wideo mówię ciut więcej na temat mentoringu. Jeśli masz pytania – po prostu do mnie napisz.

Pamiętaj! Zawsze jesteś mile widziany/a

Spark: czemu jedna akcja tworzy wiele jobów?

Spark: czemu jedna akcja tworzy wiele jobów?

Zgłębiając kwestie wydajnościowe zauważyłem, że dzieje się coś dziwnego: jedna akcja generuje wiele jobów. Postanowiłem to sprawdzić i opisać tutaj:-). Śmiało, częstuj się. A jeśli artykuł okaże się przydatny – podziel się nim na LinkedIn… czy gdziekolwiek chcesz.

Kawka w dłoń i ruszamy!

Podstawy – jak działa aplikacja sparkowa?

Bardzo często mówiąc o tym, że piszemy w sparku, mówimy “muszę napisać joba sparkowego”, “mój job szedł 30 godzin!” i inne.

Cóż… według nomenklatury sparkowej, nie jest to poprawne. Co gorsza – może być nieco mylące. Okazuje się bowiem, że to co nazywamy “jobem sparkowym” (czyli cały kod który ma coś zrobić i jest uruchamiany przy użyciu sparka) to tak naprawdę “aplikacja” (application). Aplikacja natomiast składa się z… jobów.

Nie mówię, że masz dokonywać rewolucji w swoim słowniku. Sam zresztą też chwalę się ile to nie trwał “mój job”;-). Pamiętaj jednak, że prawdziwe joby siedzą pod spodem aplikacji.

No dobrze – ale czym dokładnie są te joby? I jak jest zbudowana aplikacja sparkowa? Oczywiście to nie miejsce na szkolenie (na listę oczekujących kursu online “Fundament Apache Spark” możesz zapisać się tutaj). Spróbujmy jednak bardzo pokrótce zrozumieć jak zbudowana jest taka aplikacja.

Zróbmy to w kilku krokach:

  1. Podczas pisania kodu posługujemy się dwoma rodzajami: akcjami i transformacjami:
    • transformacje pozwalają nam przetworzyć RDD/Dataset na inny RDD/Dataset. Nie są jednak wykonywane od razu (lazy evaluation)
    • akcje z kolei wykonują wspomniane wcześniej transformacje i tym samym kończą pewną robotę do zrobienia – czyli joba;-).
  2. Job, czyli praca do wykonania. No właśnie – mamy kilka transformacji, które składają się w jeden ciąg operacji dokonywanych na danych. Na końcu są np. zapisane na HDFS albo wyświetlone na ekranie. I to jest właśnie 1 job. Tak więc powiedzmy to sobie wreszcie – 1 akcja = 1 job, yeeeaahh!
  3. Czyli w aplikacji może być kilka jobów. To teraz kolejne zagłębienie. Job składa się ze… stage’y. Czyli z etapów. Jak to się dzieje? Wróćmy do transformacji – bo na tym etapie mamy tylko z transformacjami do czynienia (w końcu akcja kończy joba).
    • Transformacje też możemy podzielić!
    • Narrow Transformations – gdy transformacje z jednej partycji wyprowadzają dokładnie jedną partycję. Narrow Transformations (np. filtry) są dokonywane w pamięci.
      • przykłady: filter, map, union, sample, intersection
    • Wide Transformations – gd transformacje wyprowadzają z jednej partycji wejściowej kilka partycji wyjściowych. Tutaj, ponieważ wide transformations powodują shuffling, dane muszą zostać zapisane na dysk.
      • przykłady: groupBy, join, repartition (te trzy, szczególnie dwa pierwsze, to klasyki – postrachy inżynierów sparkowych)
    • No i właśnie dlatego, że wide transformations powodują shuffling (przemieszanie danych między partycjami/executorami/nodami), musi zakończyć się jakiś etap joba. Czyli stage;-).

I można by kilka rzeczy dodać, ale tyle wystarczy, a nawet może zbyt wiele.

Nie mogłem jednak się powstrzymać. Uff… liczę, że jeszcze ze mną jesteś!

Ale dlaczego jedna akcja tworzy wiele jobów?!

Wspomniałem wyżej, że jednej akcji odpowiada jeden job w aplikacji. Jakie było moje zdziwienie, gdy zobaczyłem co następuje.

Oto mój kod. Przykładowy, ćwiczeniowy, prosty do zrozumienia (zmienna spark to instancja SparkSession):

val behaviorDF: Dataset[Row] = spark.read
  .option("header", "true")
  .csv(pathToBehaviorFile)

behaviorDF.show()
val brandCountDF: Dataset[Row] = behaviorDF.groupBy("brand")
  .count()
  .as("brandCount")

val userIdCount: Dataset[Row] = behaviorDF.groupBy("user_id")
  .count()
  .as("userCount")

val behaviorsWithCounts: Dataset[Row] = behaviorDF.join(brandCountDF, "brand")
  .join(userIdCount, "user_id")

behaviorsWithCounts.show(20)

 

Jak widać mamy dwie akcje:

  1. behaviorDF.show() – linijka 23 (w rzeczywistości)
  2. behaviorsWithCounts.show(20) – linijka 35 (w rzeczywistości).

Czyli z grubsza powinny być 2, może 3 joby (jeśli liczyć także wczytywanie danych).

Co zastałem w Spark UI?

WHAAAT…

Jak to się stało?

Czemu mam… 5 różnych jobów do akcji z linijki 35?

Otóż – mogą być za to odpowiedzialne dwie rzeczy:

  1. DataFrame to abstrakcja zbudowana na RDD. 1 akcja odpowiada 1 jobowi, ale… na RDD. Dataframe czasami “pod spodem” może wykonywać jeszcze inne akcje. JEDNAK TO NIE TO BYŁO MOJE ROZWIĄZANIE. Dotarłem do takiego wyjaśnienia więc się nim dzielę. U mnie natomiast DUŻO WAŻNIEJSZY okazał się pkt 2.
  2. Włączone Adaptive Query Execution – czyli mechanizm optymalizacyjny Apache Spark. Może być włączony albo wyłączony. Od Sparka 3.2.0 AQE włączone jest domyślnie!

Po ustawieniu prostej konfiguracji “spark.sql.adaptive.enabled” na “false”, jak poniżej…

val spark: SparkSession = SparkSession.builder()
  .appName("spark3-rdf-tests")
  .config("spark.sql.adaptive.enabled", false)
  //      .master("local[*]")
  .getOrCreate()

 

… i uruchomieniu aplikacji raz jeszcze, efekt w 100% pokrył się z moją wiedzą teoretyczną.

OMG CO ZA ULGA

UWAGA! Warto pamiętać, że AQE jest z zasady dobrym pomysłem. Nie wyłączaj tego, jeśli nie wiesz dokładnie po co to chcesz robić.

Ja na przykład wyłączam w celach edukacyjnych;-)


Szkolenie z Apache Spark – może tego właśnie potrzebujesz?

Jeśli reprezentujesz firmę i potrzebujecie solidnie przeczołgać się ze Sparka… jesteśmy tu dla Was!

Mamy solidnie sprawdzoną formułę.

I własny klaster, na którym poeksperymentujecie;-)

Więcej informacji na tej stronie.

Możesz też po prostu napisać na: kontakt@riotechdatafactory.com !


Co to jest Adaptive Query Execution?

No to teraz pokrótce: co to jest Adaptive Query Execution?

Przeczytasz o tym w dokumentacji Sparka, o tutaj.

Mówiąc jednak prosto i zwięźle: Adaptive Query Execution to mechanizm zawarty w Spark SQL, który pozwala zoptymalizować pracę aplikacji. AQE dokonuje optymalizacji bazując na “runtime statistics”. Temat samych statystyk będę poszerzał w przyszłości tutaj lub na kanale YouTube. Zapisz się na newsletter, żeby nie przegapić;-). I przy okazji zgarnij jedynego polskiego ebooka wprowadzającego w branżę Big Data (i to kompleksowo!).

AQE ma 3 podstawowe funkcjonalności:

  1. Łączenie partycji po shufflingu – dzięki temu mechanizmowi bardziej wydajnie dobierane są partycje. Widać to m.in. na powyższym przykładzie – gdy porównasz liczby partycji w obu przypadkach.
  2. Dzielenie partycji ze “skośnościami” po shufflingu (data skewness) – spark będzie optymalizował partycje, które podlegają “skośności” (są zbyt duże, co wychodzi dopiero po shufflingu).
  3. Zamiana “sort-merge join” na “broadcast join” – zamienia jeśli statystyki którakolwiek strona joina jest mniejsza niż poziom pozwalający na taką operację.

W praktyce AQE daje zauważalne rezultaty. Widać to dość symbolicznie na mojej małej aplikacji (ładuję tam jedynie 5 gb z hakiem), gdzie wynik z ~5.4 min zszedł do ~5 min.

Minusy? Przede wszystkim mniejsza czytelność podczas monitoringu joba. Co z jednej strony może wydać się śmieszne, ale w rzeczywistości, gdy musimy zoptymalizować jakąś bardzo złożoną aplikację – może zrobić się uciążliwe.

Podsumowanie

Podsumowując:

  1. Od Sparka 3.2.0 domyślnie włączony jest Adaptive Query Execution.
  2. To mechanizm, który pozwala na bardzo konkretną optymalizację. Powoduje niestety pewne “zaszumienie” monitoringu aplikacji.
  3. W efekcie zamiast zasady 1 akcja = 1 job, nasza aplikacja będzie bardziej porozbijana.
  4. Można to wyłączyć (aby nie zachęcać do pójścia “na łatwiznę” – jak to zrobić zostało zawarte w tekście;-)). Nie rób jednak tego bez solidnej argumentacji.
  5. Zapisz się na newsletter i przeczytaj ebooka, który pokaże Ci Big Data z kilku różnych storn. A jak Ci się spodoba, napisz o tym w sieci żeby i inni wiedzieli:-).

Jeśli natomiast szukasz czegoś, co pokaże Ci podstawy Sparka od A do Z… 

Może sprawdzisz kurs “Fundament Apache Spark”?

“Podobno” niektórzy od tego kursu… zaczęli całą przygodę z branżą;-).

Jak oczyścić dane w sparku? Castowanie, funkcje, nulle, regexpy itd. [wideo]

Jak oczyścić dane w sparku? Castowanie, funkcje, nulle, regexpy itd. [wideo]

Dziś kontynuujemy temat pierwszego kontaktu z danymi. W wideo opowiadam nieco o rzutowaniu (cast), funkcjach jak split, regexpach czy walce z nullami. Oczywiście wszystko z wykorzystaniem Apache Spark. Zapraszam!

A! Ważna informacja… tylko do końca stycznia można zakupić kurs “Fundament Apache Spark”. Nie zwlekaj z poznaniem jednej z najważniejszych technologii w branży.

Podstawowy problem, czyli… “how to clean data in spark?”

Przypominam jeszcze, jeśli nie jesteś członkiem newslettera, po zaciągnięciu się na nasz okręt dostajesz na wejściu prawie 140 stron ebooka o Big Data! Nie zwlekaj;-)

 

Loading

Jak załadować dane do Apache Spark? [Wideo]

Jak załadować dane do Apache Spark? [Wideo]

Po przerwie wracam z… poradnikami! Do końca stycznia zajmujemy się jeszcze Apache Spark, bo i do końca stycznia można zakupić kurs “Fundament Apache Spark”.

Dzisiaj zajmiemy się takimi tematami jak:

  • Zapoznawanie się z danymi
  • Ładowanie danych do Sparka z csv
  • Wstępna obróbka danych i łączenie różnych źródeł w jeden dataset

A to wszystko na danych z Twittera;-).

Podstawowy problem czyli… “How to load data in Spark”?

Przypominam jeszcze, jeśli nie jesteś członkiem newslettera, po zaciągnięciu się na nasz okręt dostajesz na wejściu prawie 140 stron ebooka o Big Data! Nie zwlekaj;-)

 

Loading

“Fundament Apache Spark” już dostępny! Jak wygląda pierwszy polski kurs o Sparku? [Wideo]

“Fundament Apache Spark” już dostępny! Jak wygląda pierwszy polski kurs o Sparku? [Wideo]

Z przyjemnością chcę ogłosić, że… pierwszy kurs autorstwa Riotech Data Factory… jest już dostępny! To “Fundament Apache Spark” i dzięki niemu poznasz podstawy tej technologii.

Chciałbym opisać coś więcej, natomiast najlepiej chyba będzie, jak zobaczysz  sam/a;-).

Przygotowałem specjalne wideo, na którym pokazuję od wejścia na stronę co zobaczysz po dokonaniu zakupu.

Całość tego jak wygląda kurs “od środka” zaczyna się ok 12 minuty;-).

Zobacz jak wygląda pierwszy kurs online o Apache Spark

Na stronę kursową przejdziesz klikając w ten link

Przypominam jeszcze, jeśli nie jesteś członkiem newslettera, po zaciągnięciu się na nasz okręt dostajesz na wejściu prawie 140 stron ebooka o Big Data! Nie zwlekaj;-)

 

Loading