Jako że już od dłuższego czasu mam okazję pracować z Cosmos DB, to wydarzenie Azure Cosmos DB Conf wyjątkowo zwróciło moją uwagę. W dużej mierze liczyłem na poznanie ciekawych technik, które usprawnią codzienną pracę z tytułową usługą. Może konferencja nie do końca spełniła te oczekiwania, ale w zamian dowiedziałem się o kilku ciekawych metodach i technologiach, które opiszę w tym wpisie.
Tematem dzisiejszego odcinka są bazy danych. Tak jak poprzednio, zamiast gotowego rozwiązania skupię się bardziej na możliwościach, a nie konkretnym wyborze. Ponieważ aplikacja dla Ligii Mistrzów jest projektem typu greenfield to całe szczęście nie musimy nic migrować, a jedynie zastanowić się, gdzie chcielibyśmy mieć dane. Jest oczywiście jeden problem w specyfikacji.
Bazy relacyjne są sprawdzonym rozwiązaniem, ale nie pasują do wszystkich problemów. Na ratunek przychodzą bazy NoSQL.
Bazy danych i XML 1557 dni, 21 minut temu 88 źrodło rozwiń
Apache Cassandra to specyficzna baza danych. Skaluje się (uwaga) liniowo. Ma to swoją cenę: specyficzne modelowanie tabel, konfigurowalna spójność i ograniczona analityka. Apple wykonuje miliony operacji na sekundę na ponad 160 tys. instancjach Cassandry. Gromadzi przy tym ponad 100 PB danych. Ograniczoną analitykę można „wyleczyć” wykorzystując Apache Spark i connector od DataStax i o tym jest ten wpis.Spis treścihide1Środowisko2Dane3Utworzenie tabel w Apache Cassandra4Zasilenie Cassandry SparkiemWczyta...
Bazy danych i XML 1564 dni, 12 godzin, 59 minut temu 50 źrodło rozwiń
Przemysław Walkowski No i stało się. Skończyłem kurs. 12 tygodni, co tydzień nowe lekcje i dużo wiedzy. Poniżej zamieszczam moją recenzję. Kurs kupiłem za 800zł i od początku zgodnie z terminami robiłem to co było wymagane. Głownie zadania domowe. Kurs jest dostępny https://dbmaster.pl/. Kurs prowadził w całości Damian Widera. Zapraszam do recenzji.TLTR; Kurs jest bardzo ale to bardzo nie równy. Brak stałego poziomu prowadzi do tego, że czasem byłem bardzo za...
Bazy danych i XML 1635 dni, 13 godzin, 14 minut temu 178 źrodło rozwiń
Większość projektów, w których brałem udział posiadało funkcjonalność wyszukiwania tekstowego. We wszystkich z nich było to zrealizowane klauzulą LIKE w SQL. Często ten element aplikacji stawał się wąskim gardłem i redukował responsywność aplikacji. Kiedy serwery dalej płoną, opiszę tutaj po pokrótce kilka alternatyw dla tego rozwiązania.
Bazy danych i XML 2117 dni, 11 godzin, 55 minut temu 198 źrodło rozwiń
Konkretne przypadki które warto znać w temacie konwersji konceptualnego modelu danych (ERD) do modelu fizycznego. Wersja polska i angielska.
Bazy danych i XML 2200 dni, 12 godzin, 1 minutę temu 47 źrodło rozwiń
Docker, SQL Server, VS Code, mssql i Mundial. Chcesz dowiedzieć się jak zarządzać bazą danych z poziomu Visual Studio Code, zapraszam do lektury.
Całkiem normalną sytuacją jest, gdy każdy sam sobie instaluje server bazy danych. Wtedy u każdego ta nazwa może być różna. Ktoś zainstalował wersję SQL Express, ktoś inny ma już kilka wersji SQL (2008, 2012, 2014, 2016, …) różnie nazwanych, u kogoś innego w poprzednim projekcie instancja musiała się konkretnie nazywać.
Sztuka programowania 2401 dni, 14 godzin, 9 minut temu 172 źrodło rozwiń
Całkiem niedawno, albo może i dawno patrząc na postępujący czas, zacząłem pisać pewien programik w pracy. Ma nas on wspomagać w DevOps – owaniu. Dzięki niemu uda się, mam nadzieję, zautomatyzować sporo rzeczy. Oczywiście jak to nowy programik – NodeJs (tego jeszcze nie było), mikroserwisy, komunikacja po REST oraz jakaś baza danych. Zazwyczaj na ten ostatni element zwracałem najmniejszą uwagę, bo dowolny ORM załatwiał sprawę za mnie. Więc tym razem inaczej, bo mogę...
Bazy danych i XML 2778 dni, 12 godzin, 1 minutę temu 56 źrodło rozwiń
Hej! często w systemach, które implementujemy zachodzi potrzeba aktualizacji jednej kolumny w bazie danych. Przykładowo, tabela Usermoże posiadać flagę IsLocked, która będzie informowała o tym, czy użytkownik jest zablokowany. Chcąc zaimplementować metodę blokującą delikwenta, część pomyśli o następującej implementacji: public async Task LockUserAsync(string id) { var context = new DbContext(); var user = context.Users.SingleOrDefault(u => u.Id == id); user.IsLocked = true; ...
Czasami tak projektujemy naszą aplikacje, że każdy model ma jedną lub kilka cech wspólnych. Od najbardziej oczywistych, jak na przykład ID, poprzez czas i datę utworzenia, modyfikacji, czy-usunięty, czy-opublikowany i inne czy-? W zależności od poziomu lenistwa cechy te definiowane i utrzymywane są w każdej z klas z osobna lub w jednym lub-lub w kilku interfejsach który jest implementowany przez modele.Do momentu pisania posta byłem gościem, który posiadał jeden wsp...
Bazy danych i XML 3154 dni, 1 godzinę, 58 minut temu 158 źrodło rozwiń
Dzisiaj podstawy, ale wcześniej nie miałem potrzeby skorzystania z funkcji GroupJoin. Myślę, że prosty przykład jest najlepszą dokumentacją. Dosyć częstą używaną funkcją jest GroupBy. Jeśli mamy np. listę zamówień w postaci (IdCustomer, Name), wykonując GroupBy na IdCustomer otrzymamy słownik, gdzie kluczem jest identyfikator zamówienia, a wartością lista zamówień danego klienta. GroupJoin, jak sama nazwa sugeruje jest połączeniem Join z GroupBy. Załóżmy, że mamy nast...
Bazy danych i XML 3154 dni, 1 godzinę, 58 minut temu 170 źrodło rozwiń
Wiele osób pewnie już od dawna korzysta LINQPad. Osobiście nigdy nie miałem okazji korzystać z tego narzędzia i zawsze myślałem, że w przypadku TDD jest ono po prostu zbędne. Ostatnio jednak zainstalowałem z ciekawości i okazało się bardzo przydatne w przypadku testowania krótkich snippet’ów. Czasami chcę sprawdzić tylko np. formatowanie daty i wtedy zwykle uruchamiałem osobną instancję Visual Studio, immediate windows w VS albo po prostu pisałem konkretny test. Nie zawsze jednak jest to wygodne i prak...
Sztuka programowania 3352 dni, 14 godzin, 36 minut temu 370 źrodło rozwiń
Nie zawsze kwerendy działające świetnie na małych zbiorach są równie dobre dla dużych tabel. Porównanie wydajności zapytań w funkcji liczebności zbioru. Przykład ze stałą złożonością obliczeniową.
Bazy danych i XML 3673 dni, 22 godziny, 29 minut temu 340 źrodło rozwiń
W artykule przedstawione są różne metody pomiaru wydajności i porównywania szybkości zapytań SQL, bazując na narzędziach dostępnych w SQL Server - widoki DMV/DMF, Extended Events i Profiler. Omówione są także typowe błędy w analizach za pomocą podstawowych statystyk.
Bazy danych i XML 3676 dni, 13 godzin, 46 minut temu 378 źrodło rozwiń
Wstęp do zagadnień związanych z optymalizacją i mierzeniem wydajności zapytań SQL. Jest to fragment darmowego kursu pisania zapytań SQL opisującego proces przetwarzania kwerend przez silnik bazodanowy.
Bazy danych i XML 3682 dni, 15 godzin, 44 minuty temu 475 źrodło rozwiń
Dobrze nazwana klasa, dobrze nazwana zmienna, dobrze nazwana tabela to połowa sukcesu w naszym zawodzie. Czytelny kod zdradzający już na pierwszy rzut oka intencje autora to skarb. Nie trzeba się głowić OCB, WTF, ot czytamy i wiemy co to to robić powinno. Jeśli jeszcze to robi to po prostu miodzik.Dobra nazwa to podstawa! No i taka sytuacja,...
Hi everyone, I was thinking about subject of this post. I tried invent something what wasn't written yet. After few days I asked myself: "What should I expect during reading about programming in Metro?" .The answer: "Workshop!" But not basic "hands-on-lab" which give you some information and recommend you to read many articles if you would like to know more. I was expecting "driving" through all process of project . From bussiness case, architecture, development backend, to Metro application im...
Mobile development 4389 dni, 20 godzin, 8 minut temu 50 źrodło rozwiń
Ważnym problemem podczas wykonywania testów jednostkowych jest ich wzajemna niezależność. Zmiany wprowadzone w bazie danych przez jeden z testów nie powinny wpływać na wykonywanie się pozostałych testów. Jednym z rozwiązań było by usuwanie w każdym teście zmian które wykonuje on na bazie danych, ale jest to bardzo niewygodne...
Bazy danych i XML 5170 dni, 10 godzin, 13 minut temu 38 źrodło rozwiń