
Algorithms to be used in daily work
Machine Learning are not a magical tricks anymore
The Artificial Intelligence we hear so much about is actually the use of algorithms. The phrase "Machine Learning" (ML) and the statement that computers learn from the data they receive are common. In fact, computers do not learn anything - they are soulless machines that only execute commands. Computers provide us with the results of their work in two ways; we tell the computers an example of what to look for in the data (supervised learning) or we tell them to run an algorithm that has predefined results to deliver ("unsupervised learning").
Read more about types of algorithms and their appliance.
Thus, a finite number of algorithms can give us an infinite number of combinations of their use – it is amazing how short is the list of functions and algorithms that create quite complex software that performs various tasks. It's like the language we use; the number of words is limited, but the number of literary works will never reach the end.
What are algorithms?
Algorithm a finite sequence of clearly defined actions necessary to perform a certain type of task. A recipe is often cited as an example of an algorithm used in everyday life.
ML uses algorithms that come from the 60s, 50s and even ancient Greece. Their wide use was made possible by fast computers. It is fast computing machines that have made a real revolution, not the algorithms themselves.
The use of algorithms was not overly difficult, but so far it required some skills, like coding ability. However, that has changed. Since some time we have access to software where we have algorithms on the right button of a mouse. What's more, there is free software like Orange Data Mining - a great environment in which we can test certain hypotheses, look for hidden information in data, get recommendations on the basis of which we will make further decisions. Here are several examples of several "Machine Learning" algorithms that you can use in your daily work.
Linear regression
Linear regression and especially the model that was built on that algorithm - Auto Regressive Integrated Moving Average (ARIMA). This is a statistical analysis model that uses time series data to either better understand the data set or to predict future trends.
What it can be used for:
- Stock price prediction
- Supply chain forecasts
- Procurement and production planning
Camunda 8 - czym się różni od wersji 7 i jak ją uruchomić
Camunda - wersja 7
Camundę w wersji siódmej można nadal pobrać ze strony - link. Ta wersja będzie utrzymywana i rozwijana przez co najmniej kolejnych pięć lat. Wersję 7 możemy pobrać w kilku edycjach:
- [Community Edition ] Camunda Platform 7 Run - do zainstalowania na działającym już serwerze Tomcat
- [Community Edition ] Camunda Platform 7 + Tomcat - instalacja zwiera Tomcat wraz z modułem Camundy
- [Community Edition ] Camunda Platform 7 Enterprise Edition - komercyjna wersja Camundy
Wersja Community Edition zawiera Tasklist oraz Cockpit Basic + silnik wykonywania procesów BPMN i DMN. Camunda w wersji 7 może np. zostać osadzona jako plik JAR w aplikacji Java [na etapie wczesnego rozwoju w wersji 8]. Domyślną bazą danych jest H2 którą w środowisku produkcyjnym można zamienić na inną relacyjną bazę danych.
Camunda - wersja 8
Camunda w wersji 8 nie jest kontunuacja wersji siódmej. To zupełnie inny produkt - choć oczywiście bardzo podobny do poprzedniego, ta sama idea i podobna logika [inna architektura na poziomie oprogramowania]. W Camunda Platform 8 domyślnym środowiskiem jest wersja SaaS - to był główny motywator napisania nowej edycji Camundy. Można tam tworzyć klastry gdzie "silnikami przepływów pracy" jest produkt nazwany "Zeebe". Camunda w wersji 8 jako bazę danych wykorzystuje Elasticsearch.
Camundę 8 mamy w dwóch edycjach:
- Camunda Platform 8 Self-Managed - kontener Docker lub Kubernetes
- Camunda Platform 8 SaaS
Architektura Camundy w wersji 8 wygląda następująco:
Komponenty oznaczone niebieskim kolorem są komponentami komercyjnymi. Choć wersja "Self-Managed" którą można pobrać zawiera je, producent jasno określa że nie możesz ich wykorzystywać w środowisku produkcyjnym: "If you want to put these components into production, you will need to buy a license (via enterprise subscription) from Camunda".
Komponenty oznaczone zielonymi paskami to komponenty na licencji "source-available" - możesz ich używać w produkcyjnej wersji bez opłat [to jest silnik przepływów, Zebe, oraz baza danych instalacji - Elasticsearch]. Co więcej, Camundę w wersji 8 możesz pobrać jako kontenery Docker lub Kubernetes [jedyne opcje na oficjalnej stronie pobierania Camundy w wersji 8] lub jako komponenty do instalacji bezpośrednio w systemie operacyjnym - do pobrania tutaj.
Taka Camunda, "Self-Managed", nie posiada też zarządzania użytkownikami i ich uprawnieniami - mogło to być przydatne jeśli firma wykorzystywała moduł Tasklists i formularze. Instalacja Camundy 8, "Self-Managed" w wersji "source-available" ma zatem póki co niewielki sens. W praktyce jest to tylko demo produktu.
Przetwarzanie strumieni danych
Dane, dane są wszędzie… wszyscy korzystamy intensywnie z różnych cyfrowych usług i w rezultacie coraz więcej serwisów produkuje coraz większe ilości danych. Informacje muszą szybko dotrzeć do właściwych odbiorców, muszą być błyskawicznie przetworzone lub wzbogacone, zdarzenia w jednym systemie powodują wyzwolenie reakcji w innym miejscu. W „czasie rzeczywistym” – co oznacza z minimalnym opóźnieniem.
Kiedy pojawia się dużo danych z jednego lub wielu systemów, automatycznie stajemy przed problemem zapisu tych informacji, ich interpretacji i prezentacji wyników. Jeśli słyszysz o systemach do przetwarzania „strumieni danych”, zwykle problem zapisu dużej ilości danych jest wymieniany jako główny powód do przejścia z tradycyjnych baz danych do platform strumieniowego przetwarzania danych. Ale to nie jest prawda. „Tradycyjne bazy” potrafią przyjąć miliony rekordów w sekundzie (właściwie górny limit nie istnieje). Masz więcej danych?
To co jest prawdziwym wyzwaniem, to dystrybucja danych (także ich bezpieczne przechowanie), wzbogacenie i aktualizacja, odczyt w różnych systemach.
Jak odbywa się przetwarzanie strumieni danych?
System A wykonuje jakąś czynność i rezultatem tej czynności jest informacja. System B bazuje na tych danych, by dostarczyć informację dla użytkownika tego systemu lub przesłać ją do innego systemu. Dla przypomnienia – dzisiaj procesy obsługiwane są przez systemy, które mają budowę modułową, jak taśma produkcyjna w fabryce. Bardzo rzadko jest to wszystkorobiący kombajn.
System A non-stop produkuje więc dane, to jest nasz ‘strumień danych’. System B z różnych przyczyn nie odbiera tych danych bezpośrednio. Po pierwsze nie potrafi. Nie jest tak zaawansowany, by sobie z tym poradzić. Po drugie często potrzebuje danych, które są przetworzone (dane muszą być zagregowane, dołączone inne informacje, niepotrzebne informacje usunięte…). Wymień inne powody.
I tutaj pojawia się pośrednik – „platforma przetwarzania strumieniowego”. Coś, co będzie w stanie odebrać dane, które napływają z systemu A i udostępnić je po przetworzeniu systemowi B. Najczęściej tą platformą jest Kafka. Ale są też inne – na chmurce i takie, które można mieć u siebie. Są też rozwiązania, które jako takie nie służą do odbierania informacji i ich udostępniania, ale zajmują się przetwarzaniem informacji i ich publikacją do platform - skąd mogą być one pobrane przez systemy (np. Apache Flink).

Pentaho - praca z datami
Jak odczytywać daty, konwertować do innego formatu i inne operacje na datach w Pentaho Kettle
Odczyt dat i ich konwersja sprawia wiele problemów niedoświadczonym użytkownikom. Bez zbędnej gadaniny - przejdźmy prosto do tematu.
Odczyt daty
Przy czytaniu plików (Tekstowe, pliki Excela) daty w kolumnie mogą mieć jeden z przykładowych formatów (tylko mała próbka jak mogą być one zapisane):
2023-10-26
26/10/2023
10/26/23 14:15
26/Oct/23 5:43 AM
Często krok odczytujący plik, np. "Text file input" potrafi automatycznie, poprawnie zinterpretować format daty i zaproponować właściwy w opcjach "Format". Czasami jednak musimy ręcznie wstawić tam właściwy. Np. jeśli nasze daty zapisane są w formacie "2023-10-26", w polu "Format" wpisujemy maskę "yyyy-MM-dd". Upewnij się że odczytywana data ma typ danych "Date" - jeśli będzie to "String", nie będziesz mógł użyć takiej informacji jako daty w następnych krokach.
Amerykański zapis daty jest często "dziwaczny" i nie dość że miesiąc występuje tam na początku, często zapisany jest słownie skrótem lub pełną nazwą miesiąca. Dodatkowo nie rzadko godzina występuje w formacie dwunastogodzinnym z następującą po nim określeniu czy chodzi o rano czy popołudnie; AM, PM. I tak gdybyśmy chcieli odczytać datę "26/Oct/23 05:29 AM" musimy użyć maski "dd/MMM/yy h:mm a".
Uwaga, powyższa maska może nie zadziałać jeśli masz system operacyjny w polskiej wersji. Popularne formaty dat zostały wymienione w tym dokumencie Pentaho: https://help.hitachivantara.com/Documentation/Pentaho/9.3/Products/Common_Formats