
marcinbadtkett
MarcinBadtke
36Following2071Followers6111Likes
Przyjaźnie o SQL, bazach danych i ludziach.
Videos
Liked
Czasem w firmie jest kilka podsieci. Ruch pomiędzy nimi nie jest dozwolony. Aby zalogować się z jednej do drugiej trzeba użyć hosta przesiadkowego. Czasem zwanego jumphost lub gateway.
Kopiowanie plików pomiędzy hostem w jednej podsieci, a hostem w drugiej odbywa się także poprzez host przesiadkowy. Dopóki pliki są niewielkie a operacja sporadyczna da się żyć.
Ja miałem skopiować wiele dużych plików w jak najkrótszym czasie.
Próbowałem komendy jak ta:
scp zdalne_źródło zdalny_cel
wydanej z hosta przesiadkowego.
Nie zadziałała ponieważ scp próbuje skomunikować oba hosty ze sobą. Bez pośrednictwa przesiadkowego.
W sukurs przychodzi opcja -3:
scp -3 zdalne_źródło zdalny_cel
Taka komenda wydana z hosta przesiadkowego transferuje dane via host przesiadkowy.
Czyli dane lecą ze zdalnego hosta źródłowego do hosta przesiadkowego. Na hoście przesiadkowym nie są zapisywane tylko od razu transferowane do zdalnego hosta docelowego.
Przyda Ci się?
#scp #marcinbadtke #dc #dlaciebie
Kopiowanie plików pomiędzy hostem w jednej podsieci, a hostem w drugiej odbywa się także poprzez host przesiadkowy. Dopóki pliki są niewielkie a operacja sporadyczna da się żyć.
Ja miałem skopiować wiele dużych plików w jak najkrótszym czasie.
Próbowałem komendy jak ta:
scp zdalne_źródło zdalny_cel
wydanej z hosta przesiadkowego.
Nie zadziałała ponieważ scp próbuje skomunikować oba hosty ze sobą. Bez pośrednictwa przesiadkowego.
W sukurs przychodzi opcja -3:
scp -3 zdalne_źródło zdalny_cel
Taka komenda wydana z hosta przesiadkowego transferuje dane via host przesiadkowy.
Czyli dane lecą ze zdalnego hosta źródłowego do hosta przesiadkowego. Na hoście przesiadkowym nie są zapisywane tylko od razu transferowane do zdalnego hosta docelowego.
Przyda Ci się?
#scp #marcinbadtke #dc #dlaciebie
Uczenie maszynowe to podejmowanie decyzji i przewidywanie przyszłości na podstawie danych. Tym lepsze i trafniejsze im większą ilością danych zasilimy system.
A gdzie są najważniejsze dane? W relacyjnej bazie danych.
Aby poprawić wydajność i bezpieczeństwo uczenia maszynowego producenci baz danych zaszyli odpowiednie funkcjonalności w motorze bazy danych. Dzięki temu nie musisz wyładowywać, transformować ani przenosić danych. Oszczędzasz.
Każdy z producentów zrobił to na swój charakterystyczny sposób.
Oracle zaszył odpowiednie funkcjonalności w kernelu. Udostępnił poprzez interfejsy Python, R, SQL, REST i dodatek Data Miner do SQL Developera.
Microsoft stworzył dedykowany serwis obsługujący skrypty w Python i R.
Dla PostgreSQL istnieją rozszerzenia niezależnych producentów. Niektóre wykorzystują GPU i skalują się poziomo.
W MySQL dostępne razem z HeatWave poprzez SQL.
Skomentuj o jakim motorze chcesz więcej informacji.
#ml #marcinbadtke #sql #bazydanych
A gdzie są najważniejsze dane? W relacyjnej bazie danych.
Aby poprawić wydajność i bezpieczeństwo uczenia maszynowego producenci baz danych zaszyli odpowiednie funkcjonalności w motorze bazy danych. Dzięki temu nie musisz wyładowywać, transformować ani przenosić danych. Oszczędzasz.
Każdy z producentów zrobił to na swój charakterystyczny sposób.
Oracle zaszył odpowiednie funkcjonalności w kernelu. Udostępnił poprzez interfejsy Python, R, SQL, REST i dodatek Data Miner do SQL Developera.
Microsoft stworzył dedykowany serwis obsługujący skrypty w Python i R.
Dla PostgreSQL istnieją rozszerzenia niezależnych producentów. Niektóre wykorzystują GPU i skalują się poziomo.
W MySQL dostępne razem z HeatWave poprzez SQL.
Skomentuj o jakim motorze chcesz więcej informacji.
#ml #marcinbadtke #sql #bazydanych
Sztuczna inteligencja jest zdolnością maszyny do dorównania lub przegonienia człowieka w odkrywaniu, wnioskowaniu i wymyślaniu.
Aby sztuczna inteligencja mogła działać, czyli wnioskować i wymyślać, trzeba ją nauczyć. Dać jej wiedzę.
Tutaj na scenę wchodzi uczenie maszynowe, które jest podejmowaniem decyzji i przewidywaniem przyszłości na bazie danych historycznych. Danych, które już posiadamy.
Czyli sztuczna inteligencja jest nadzbiorem uczenia maszynowego.
Jedno i drugie służy nam tym lepiej im więcej danych wykorzystaliśmy do nauczania.
Z kolei podzbiorem uczenia maszynowego jest uczenie głębokie. Dlatego głębokie bo oparte o wielopoziomowe sieci neuronowe.
Jak to się ma do baz danych w następnym wideo.
#bazydanych #sql #marcinbadtke #ai #ml
Aby sztuczna inteligencja mogła działać, czyli wnioskować i wymyślać, trzeba ją nauczyć. Dać jej wiedzę.
Tutaj na scenę wchodzi uczenie maszynowe, które jest podejmowaniem decyzji i przewidywaniem przyszłości na bazie danych historycznych. Danych, które już posiadamy.
Czyli sztuczna inteligencja jest nadzbiorem uczenia maszynowego.
Jedno i drugie służy nam tym lepiej im więcej danych wykorzystaliśmy do nauczania.
Z kolei podzbiorem uczenia maszynowego jest uczenie głębokie. Dlatego głębokie bo oparte o wielopoziomowe sieci neuronowe.
Jak to się ma do baz danych w następnym wideo.
#bazydanych #sql #marcinbadtke #ai #ml
Niedawno Oracle wypuścił najnowszą wersję swojej bazy danych. Obok kilku nowych funkcjonalności istotną zmianą jest sposób licencjonowania. Oracle Database 23c Free jest darmowa dla deweloperów. Można ją pobrać za darmo na najpopularniejsze platformy Unix. Windows nadchodzi.
W wersji tej dostajesz:
- JSON relational duality – zalety JSON i modelu relacyjnego połączone w bazie danych
- Wsparcie dla zapytań grafowych bezpośrednio operujących na danych relacyjnych i JSON
- Procedury składowane w JavaScript
- Oracle Kafka API
Jak sądzisz: czy dzięki tej wersji Oracle utrzyma się na podium baz danych? A może uważasz, że wróci na szczyt?
#oracle #marcinbadtke #bazydanych #sql #SqlDeveloper #oracledatabase
W wersji tej dostajesz:
- JSON relational duality – zalety JSON i modelu relacyjnego połączone w bazie danych
- Wsparcie dla zapytań grafowych bezpośrednio operujących na danych relacyjnych i JSON
- Procedury składowane w JavaScript
- Oracle Kafka API
Jak sądzisz: czy dzięki tej wersji Oracle utrzyma się na podium baz danych? A może uważasz, że wróci na szczyt?
#oracle #marcinbadtke #bazydanych #sql #SqlDeveloper #oracledatabase
Pamiętasz moje poprzednie wideo o klauzuli PERIOD?
Zdaję sobie sprawę, że niekoniecznie chcesz modyfikować schemat bazy danych oraz aplikację aby móc wyszukiwać zachodzące na siebie odcinki czasu.
Postanowiłem, więc zdradzić ci sekret. Sekret tak wielki, że nie znajdziesz go nawet w dokumentacji Oracle.
Z kolei twórcy PostgreSQL nie robią z tego tajemnicy.
Natomiast producenci MySQL i SQL Server nie pokusili się o implementację.
W SQL istnieje predykat OVERLAPS. Możesz wykorzystać go do sprawdzenia czy odcinki czasu zachodzą na siebie.
Koniec odcinka czasu możesz określić ilością czasu używając interwału.
Czyli interwałem określasz długość odcinka czasu. Początek odcinka czasu musi być punktem w czasie.
Można także mieszać wskazania końca odcinka używając raz punktu w czasie, a raz interwału.
Używasz?
#bazydanych #sql #marcinbadtke #oracle #postgresql #SQLServer #MySQL
Zdaję sobie sprawę, że niekoniecznie chcesz modyfikować schemat bazy danych oraz aplikację aby móc wyszukiwać zachodzące na siebie odcinki czasu.
Postanowiłem, więc zdradzić ci sekret. Sekret tak wielki, że nie znajdziesz go nawet w dokumentacji Oracle.
Z kolei twórcy PostgreSQL nie robią z tego tajemnicy.
Natomiast producenci MySQL i SQL Server nie pokusili się o implementację.
W SQL istnieje predykat OVERLAPS. Możesz wykorzystać go do sprawdzenia czy odcinki czasu zachodzą na siebie.
Koniec odcinka czasu możesz określić ilością czasu używając interwału.
Czyli interwałem określasz długość odcinka czasu. Początek odcinka czasu musi być punktem w czasie.
Można także mieszać wskazania końca odcinka używając raz punktu w czasie, a raz interwału.
Używasz?
#bazydanych #sql #marcinbadtke #oracle #postgresql #SQLServer #MySQL
Typy datoczasowe: date, time, timestamp pozwalają na przychowanie punktu w czasie, a typ interval przechowuje czas trwania. Innymi słowy ilość czasu.
Okres, czyli odcinek czasu określany punktem początkowym i punktem końcowym, możesz znać z konstrukcji podobnych do tej:
CREATE TABLE t (
id integer
.
,początek date
,koniec date
);
Jeśli tak to skomplikowane zapytania zwracające zachodzące na siebie okresy czasu czy pokrywające się okresy czasu zapewne także nie są Ci obce.
Podobnie jak znalezienie okresu wcześniejszego, późniejszego czy sprawdzenie czy data zawiera się w okresie.
Standard SQL:2011 przynosi wybawienie od tych bolączek w postaci słowa kluczowego PERIOD.
Jego użycie jest bardzo proste i nie wymaga konwersji istniejących danych. Można to zrobić w sposób podobny do tego:
CREATE TABLE t (
id integer
.
,początek date
,koniec date
PERIOD FOR okres (początek, koniec)
);
Dzięki takiej konstrukcji zapytania testujące czy data zawiera się w okresie mogą zmianić swoją klasyczną postać:
SELECT * FROM t WHERE
początek <= sysdate
AND koniec > sysdate;
Na prostszą:
SELECT * FROM t WHERE
okres CONTAINS sysdate;
Także zapytanie wykrywające zachodzące na siebie okresy będzie bardziej czytelne:
SELECT * FROM t WHERE
okres OVERLAPS
PERIOD(DATE'2022-05-20', DATE'2023-05-20');
Zdefiniowany okres może być użyty w więzach integralności. Na przykład w kluczu głównym:
CREATE TABLE t (
id integer
.
,początek date
,koniec date
PERIOD FOR okres(początek, koniec)
PRIMARY KEY(id, okres WITHOUT OVERLAPS)
);
Inne predykaty:
EQUALS
PRECEDES
SUCCEEDS
IMMEDIATELY PRECEDES/SUCCEEDS
Zalety użycia PERIOD oprócz standardowych kolumn początek i koniec:
- zautomatyzowanie operacji INSERT/UPDATE/DELETE - motor bazy danych pilnuje aby odpowiednie rekordy pojawiły się w tabeli
- uproszczenie kodu aplikacji - twórca aplikacji nie musi pisać, nierzadko, skomplikowanych zapytań sprawdzających zachodzenie czy pokrywanie okresów
- klauzula wykorzystuje istniejące kolumny. Jej użycie obywa się bez kosztownej konwersji danych
- standard SQL
Oracle od 12c
SQL Server od 2016 + Azure
PERIOD NIE jest nowym typem. To klauzula wiążąca istniejące kolumny
#sql #bazydanych #oracle #SQLServer
Okres, czyli odcinek czasu określany punktem początkowym i punktem końcowym, możesz znać z konstrukcji podobnych do tej:
CREATE TABLE t (
id integer
.
,początek date
,koniec date
);
Jeśli tak to skomplikowane zapytania zwracające zachodzące na siebie okresy czasu czy pokrywające się okresy czasu zapewne także nie są Ci obce.
Podobnie jak znalezienie okresu wcześniejszego, późniejszego czy sprawdzenie czy data zawiera się w okresie.
Standard SQL:2011 przynosi wybawienie od tych bolączek w postaci słowa kluczowego PERIOD.
Jego użycie jest bardzo proste i nie wymaga konwersji istniejących danych. Można to zrobić w sposób podobny do tego:
CREATE TABLE t (
id integer
.
,początek date
,koniec date
PERIOD FOR okres (początek, koniec)
);
Dzięki takiej konstrukcji zapytania testujące czy data zawiera się w okresie mogą zmianić swoją klasyczną postać:
SELECT * FROM t WHERE
początek <= sysdate
AND koniec > sysdate;
Na prostszą:
SELECT * FROM t WHERE
okres CONTAINS sysdate;
Także zapytanie wykrywające zachodzące na siebie okresy będzie bardziej czytelne:
SELECT * FROM t WHERE
okres OVERLAPS
PERIOD(DATE'2022-05-20', DATE'2023-05-20');
Zdefiniowany okres może być użyty w więzach integralności. Na przykład w kluczu głównym:
CREATE TABLE t (
id integer
.
,początek date
,koniec date
PERIOD FOR okres(początek, koniec)
PRIMARY KEY(id, okres WITHOUT OVERLAPS)
);
Inne predykaty:
EQUALS
PRECEDES
SUCCEEDS
IMMEDIATELY PRECEDES/SUCCEEDS
Zalety użycia PERIOD oprócz standardowych kolumn początek i koniec:
- zautomatyzowanie operacji INSERT/UPDATE/DELETE - motor bazy danych pilnuje aby odpowiednie rekordy pojawiły się w tabeli
- uproszczenie kodu aplikacji - twórca aplikacji nie musi pisać, nierzadko, skomplikowanych zapytań sprawdzających zachodzenie czy pokrywanie okresów
- klauzula wykorzystuje istniejące kolumny. Jej użycie obywa się bez kosztownej konwersji danych
- standard SQL
Oracle od 12c
SQL Server od 2016 + Azure
PERIOD NIE jest nowym typem. To klauzula wiążąca istniejące kolumny
#sql #bazydanych #oracle #SQLServer
Zapewne wiesz co to baza danych.
Być może znasz termin system zarządzania bazą danych.
Ale czy obiło ci się o uszy określenie system bazy danych?
Baza danych nie funkcjonuje w próżni.
System bazy danych składa się z pięciu głównych komponentów: sprzętu, oprogramowania, ludzi, procedur i danych.
Sprzęt to wszystkie urządzenia obsługujące system.
Oprogramowanie to, obok oczywistego systemu zarządzania bazą danych, system operacyjny zarządzający urządzeniami oraz aplikacje używane do dostępu do danych.
Ludzie to użytkownicy końcowi, administratorzy bazy danych i systemu operacyjnego oraz programiści i projektanci aplikacji.
Na procedury składają się instrukcje i zasady zarządzania systemem bazy danych.
Dane to zbiór faktów w bazie danych.
#bazydanych #sql #marcinbadtke
Być może znasz termin system zarządzania bazą danych.
Ale czy obiło ci się o uszy określenie system bazy danych?
Baza danych nie funkcjonuje w próżni.
System bazy danych składa się z pięciu głównych komponentów: sprzętu, oprogramowania, ludzi, procedur i danych.
Sprzęt to wszystkie urządzenia obsługujące system.
Oprogramowanie to, obok oczywistego systemu zarządzania bazą danych, system operacyjny zarządzający urządzeniami oraz aplikacje używane do dostępu do danych.
Ludzie to użytkownicy końcowi, administratorzy bazy danych i systemu operacyjnego oraz programiści i projektanci aplikacji.
Na procedury składają się instrukcje i zasady zarządzania systemem bazy danych.
Dane to zbiór faktów w bazie danych.
#bazydanych #sql #marcinbadtke
Używasz partycjonowania? To zwróć uwagę na te 2 rzeczy:
#1 Czy masz indeks na kolumnie, która jest kluczem partycjonowania?
Gdy indeks istnieje, a komendy SQL używają kolumny w klauzuli where to optymalizator może zawęzić plan wykonania jedynie do partycji zawierających dane z zadanego zakresu. Ta funkcjonalność nazywa się partition pruning.
#2 czy indeksy na tabeli są globalne czy lokalne?
Indeksy lokalne czyli partycjonowane identycznie jak tabela są tańsze w utrzymaniu i wydajniejsze w użyciu.
Skomentuj jak Tobie idzie z partycjonowaniem?
#bazydanych #sql #marcinbadtke #oracle #postgresql
#1 Czy masz indeks na kolumnie, która jest kluczem partycjonowania?
Gdy indeks istnieje, a komendy SQL używają kolumny w klauzuli where to optymalizator może zawęzić plan wykonania jedynie do partycji zawierających dane z zadanego zakresu. Ta funkcjonalność nazywa się partition pruning.
#2 czy indeksy na tabeli są globalne czy lokalne?
Indeksy lokalne czyli partycjonowane identycznie jak tabela są tańsze w utrzymaniu i wydajniejsze w użyciu.
Skomentuj jak Tobie idzie z partycjonowaniem?
#bazydanych #sql #marcinbadtke #oracle #postgresql
Predykaty access – waruneki w klauzuli where wskazujące, które dane mają zostać odczytane. Zazwyczaj używane wtedy gdy motor bazy danych może użyć indeksu.
Predykaty filter - warunki w klauzuli where wskazujące, które dane mają zostać uwzględnione po ich odczytaniu. Zazwyczaj używane wtedy gdy instancja nie może skorzystać z indeksu.
Predykaty filter są bardziej zasobożerne ponieważ stosowane po kosztownym odczycie danych.
Zwracasz na to uwagę? Skomentuj.
#marcinbadtke #sql #bazydanych
Predykaty filter - warunki w klauzuli where wskazujące, które dane mają zostać uwzględnione po ich odczytaniu. Zazwyczaj używane wtedy gdy instancja nie może skorzystać z indeksu.
Predykaty filter są bardziej zasobożerne ponieważ stosowane po kosztownym odczycie danych.
Zwracasz na to uwagę? Skomentuj.
#marcinbadtke #sql #bazydanych
Co jest potrzebne aby dobrze zaprojektować bazę danych?
Operacyjna baza danych, wspierająca codzienną działalność organizacji, wymaga poprawnych i spójnych danych oraz wydajnego przetwarzania małych i częstych transakcji.
Hurtownia danych wymaga przechowywania i przetwarzania historycznych danych.
Scentralizowana baza danych wykorzystywana przez jednego użytkownika wymaga innego podejścia niż rozproszona i wielodostępna.
Warto mieć świadomość przyszłego wykorzystania bazy danych tworząc jej projekt.
A co Ty uważasz za istotne podczas projektowania bazy danych?
#bazydanych #sql #marcinbadtke
Operacyjna baza danych, wspierająca codzienną działalność organizacji, wymaga poprawnych i spójnych danych oraz wydajnego przetwarzania małych i częstych transakcji.
Hurtownia danych wymaga przechowywania i przetwarzania historycznych danych.
Scentralizowana baza danych wykorzystywana przez jednego użytkownika wymaga innego podejścia niż rozproszona i wielodostępna.
Warto mieć świadomość przyszłego wykorzystania bazy danych tworząc jej projekt.
A co Ty uważasz za istotne podczas projektowania bazy danych?
#bazydanych #sql #marcinbadtke
Wiodące motory baz danych możesz wykorzystać do zbudowania różnych typów baz danych. Każda baza danych służy do przechowywania określonego rodzaju danych oraz służy konkretnym celom. Bazy danych można podzielić na kategorie biorąc pod uwagę dostęp do nich, rodzaj składowanych w nich danych, sposób ich użycia oraz podział danych na instancje. I tak rozróżniamy bazy danych dla pojedynczego lub wielu użytkowników. W bazach danych możemy przechowywać dane ustrukturyzowane mniej lub bardziej. Dane możemy używać do codziennej działalności operacyjnej organizacji lub magazynować i agregować dane historyczne aby uzyskane w ten sposób informacje pomogły w podejmowaniu decyzji strategicznych. W celu poprawy wydajności obsługi danych bazę danych może obsługiwać jedna centralna instancja lub bazę danych możemy rozproszyć pomiędzy wiele. A z jakimi bazami danych ty pracujesz?
#marcinbadtke #sql #bazydanych
#marcinbadtke #sql #bazydanych
Po co organizacji system zarządzania bazami danych skoro może przechowywać dane w plikach płaskich?
Trzy przewagi SZBD nad plikami:
1 - lepsze współdzielenie danych. SZBD umożliwia współbieżny odczyt i modyfikację danych wielu użytkownikom w tym samym czasie.
2 - lepsze bezpieczeństwo. SZBD jest jak framework umożliwiający bardzo dokładne określenie kto do jakich danych ma jaki dostęp.
3 - lepsza jakość danych. SZBD dostarcza mechanizmów umożliwiających wymuszenie jakości i spójności danych.
A Ty jakie zalety SZBD cenisz najbardziej?
A może dostrzegasz jakieś wady?
Skomentuj :-)
#bazydanych #sql #marcinbadtke
Trzy przewagi SZBD nad plikami:
1 - lepsze współdzielenie danych. SZBD umożliwia współbieżny odczyt i modyfikację danych wielu użytkownikom w tym samym czasie.
2 - lepsze bezpieczeństwo. SZBD jest jak framework umożliwiający bardzo dokładne określenie kto do jakich danych ma jaki dostęp.
3 - lepsza jakość danych. SZBD dostarcza mechanizmów umożliwiających wymuszenie jakości i spójności danych.
A Ty jakie zalety SZBD cenisz najbardziej?
A może dostrzegasz jakieś wady?
Skomentuj :-)
#bazydanych #sql #marcinbadtke