Witam,
Chciałbym związać swoją przyszłość z byciem analitykiem, z bazami danych, z czymś co nazywa się data science. W tym celu postanowiłem rozpisać sobie rzeczy których należy się uczyć. Możecie rzucić okiem i zobaczyć czego brakuje? Czy ewentualnie trzeba jakoś sprecyzować kierunek i wtedy tworzyć spis czego się uczyć.

1. Podstawy pythona + skupienie się na bibliotekach:
- Pandas, Numpy, matplotlib
2.Podstawy SQL + plus poczytanie o różnicach między MySql - ORACLE
Hej mirki spod tagów #postgresql #bazydanych #python #programowanie

Mam taką odpowiedź z bazy (już sparsowana do słownika):

[
{grupa1='wartosc1', grupa2='wartosc1', coś1='wartosc', coś2='wartosc', coś3='wartosc', xxx{n}},
{grupa1='wartosc1', grupa2='wartosc2', coś1='wartosc', coś2='wartosc', coś3='wartosc', xxx{n}},
{grupa1='wartosc2', grupa2='wartosc3', coś1='wartosc', coś2='wartosc', coś3='wartosc', xxx{n}},
{grupa1='wartosc2', grupa2='wartosc4', coś1='wartosc', coś2='wartosc', coś3='wartosc', xxx{n}},
{itp}
]

Jak teraz za pomocą pandas zrobić z tego jsona w postaci:

[
'grupa1': [
'grupa2': {
'coś1': wartość,
itp
},
'grupa2': {
'coś1': wartość,
itp
}
],
'inna_grupa1':
Czołem Mirki.
Dziś nowy kurs o optymalizacji zapytań SQL na bazie Oracle.
Nowy kurs opisuje indeks który pozwala skanować po kolumnie niewiodącej czyli INDEX SKIP SCAN

Zastanawiam się nad napisaniem kilku kursów dla początkujących np. o postaciach normalnych, diagramach oraz podstawach SQL. Warto pisać o czymś takim czy pisać jak piszę? ( ͡° ͜ʖ ͡°)

Jeśli chcesz być wołanym zaplusuj ten wpis, obserwuj tag #oracledev lub zapisz się
#aspnet #bazydanych #csharp #dotnet #entityframework #postgresql #sql

Próbuję podpiąć PostgreSQL zamiast Microsoft SQL Server. W pgAdmin doinstalowałem rozszerzenie citext. Zmieniłem kolumnę na citext. Do DbContext dodałem HasPostgresExtension("citext"). Pokasowałem migracje, dodałem nową. Mimo tego takie zapytania nie ignorują wielkości liter:

Where(u => u.UserName == userName)
Poniższe oczywiście działa:

Where(u => u.UserName.ToLower() == userName.ToLower())
Chciałbym uniknąć takich mało eleganckich fixów specjalnie dla jednego dostawcy bazy.
Mirki mam problem, miałem do tej pory zapytanie, które sprawdzało czas między kolejnymi wpisami i jeżeli było to więcej niż 5 minut zwracało timestamp pierwszego wpisu i drugiego między, którymi występowała ta przerwa i liczyło czas różnicy.
Wyglądało to mniej więcej tak
"SELECT a.ID, b.ID,
a.data AS poczatek,
b.data AS koniec,
timestampdiff(MINUTE,a.data,b.data) AS roznica
FROM xxx AS a
inner JOIN xxx as b
WHERE b.ID = a.ID+1
AND timestampdiff(MINUTE,a.data,b.data) > 5
AND
@SpijSlodkiKsiaze: Najpierw spokojnie opisz, co zapytanie zwracało i co ma zwracać, ale swoimi słowami. jakie tam statusy mogą się pojawiać, co tak naprawdę chcemy wybrać, czy sam pomiędzy dwoma rekordami, czy czas pomiędzy dwoma rekordami o tam samy statusie. Generalnie, o co chodzi? Skąd się biorą te rekordy, statusy, czy koło siebie zawsze jest dwa o tym samym statusie, itd
via Wykop Mobilny (Android)
  • 0
@cevilo: Zapisy w tej bazie to pomiary z kilku czujników, rekordy czujników różnią się od siebie tylko tym że mają różna kolumnę linia_id. Pomiędzy nimi pojawiają się wpisy generowane przez użytkownika z wartoscia o jakiej godzinie czujnik był ustawiony na jaki status. Zapytanie ma zwrócić różnice między rekordami wybranego czujnika w wybrannym zakresie czasu i wybranym statusie.
#programowanie #bazydanych #heheszki

Tłumaczenie MySQLa na język polski jest naprawdę fajne.

Doradca :
"Używasz pamięci podręcznej zapytań MySQL z dość wysokim ruchem bazy danych. To może być warte rozważenia używając memcached zamiast pamięci podręcznej MySQL zapytania, zwłaszcza jeśli masz wiele niewolników."

zwłaszcza jeśli masz wiele niewolników. - niewolnictwo zniesiono już dawno temu ( ͡° ͜ʖ ͡°)
@Stivo75: Ja kupiłem z 2 lata temu książkę "Testy penetracyjne nowoczesnych serwisów", wydawca Helion, polskie tłumaczenie. Co najlepsze tłumaczą tam frazy typowo informatyczne i "nieprzetłumaczalne" lub po prostu nikt z takich pojęć po polsku nie korzysta. Musiałem się zastanawiać czasem co to #!$%@? jest. Kilka przykładów dla potomnych:

- Pre-flight request - żądanie wstępne
- Some Origin Policy - Zasada tego samego pochodzenia
- Reflected XSS - Odbity XSS xD

Jest
#bazydanych #sql #informatyka #programowanie

Mirki, wiem, głupie, ale utknąłem i nie wiem. Muszę odpytać na szybko bazę i nie mam czasu napisać programu, który to zrobi. Nie mogę sobie poradzić z banalnym zapytaniem, tj.

Mam tabelę, przykładowo:

ID | POZYCJA | STATUS
1. DUPA 1 STAN1
2. DUPA 2 STAN2
3. DUPA 1 STAN3
4. DUPA 1 STAN1
5 DUPA 3 STAN6

I teraz, chcę wyrzucić duplikaty, których stan jest odmienny. Tj,
Czołem Mirki.
Dziś kurs z serii offtop który wygrał ostatnią ankietę.
A wygrał temat: Kurs SQL: Uprawnienia i Role
Wydaje mi się, że ten kurs wyszedł mi bardziej dla "początkujących" i mam pewien niedosyt czy aby na pewno wystarczająco wyczerpałem temat. Z drugiej strony nie chcę tworzyć kobylastych kursów, dajcie znać czy taka forma jest OK.

Jeśli chcesz być wołanym zaplusuj ten wpis, obserwuj autorski tag #oracledev lub zapisz się na mirkolistę:
Jestem w trakcie pisania pracy licencjackiej o temacie baz danych.
Obrona w październiku, a muszę dopisać trzeci rozdział.
Dwa pierwsze rozdziały mam teoretyczne o bazach relacyjnych i nierelacyjnych.
W trzecim planowałem zrobić porównanie, ale ciężko mi się pisze, ze względu na to,
że wszystkie informacje się powtarzają. Z promotorem słaby kontakt, nie za bardzo pomaga.
Macie może pomysł i wskazówki co mógłbym opisać w rozdziale 3?
Tak aby się rozpisać, muszę napisać
@PrzywodcaFormacjiSow: Utwórz połączenie do danych i załaduj je do tabeli, a później załaduj tę tabelę ponownie do PQ i z menu użyj opcji "dołącz zapytanie" (Table.Combine) wskazując to pierwsze. Na koniec skopuj oba zapytania do notatnika, połącz w jedno (niewiele z tym kombinacji, da się zrobić "na chłopski rozum") i wklej je jako kod pierwszego w edytorze PQ. Powinno Ci wyjść coś takiego:

let
Źródło1 = Excel.CurrentWorkbook(){[Name="Tabela1"]}[Content],
Źródło2 = Csv.Document(File.Contents("C:\Users\DN\Documents\dane.txt"),[Delimiter="|"]),
#"Dołączone
#bazydanych
#mysql
#programowanie

Dostalem baze w mysql w latinie1 i mam problem ze zmiana kodowania.
W bazie mam takie kwiatki jak

W³odzimierz
Potrzebuje to przerobic na utf'a.

convert( cast( convert(osoba using latin1) as binary) using utf8)
strzela nullami w kazdym polu w ktorym istnieje znak diakrytyczny
Ma ktos jakis pomysł?
Cześć,
W skrócie mam spartycjonowaną tabele (3 partycje), chciałbym wystawić użytkownikom dane, ale tylko im właściwe, czyli User1 dostaje dostęp do partycji P1, User2 do P2 itd. Mógłbym to zrobić oczywiście na zasadzie widoków ale wolałbym grantami.
Czy da się nadać grant na select innemu userowi (schematowi) tylko na wybraną partycję tabeli w Oracle?

#oracledev #oracle #bazydanych #sql #programowanie #programista15k ( ͡° ͜ʖ ͡°)
@yelas: A nie lepiej zrobić jeden widok w którym odwołasz się do całej tabeli i postawisz where uniwersalnydla każdego użytkownika ? Wtedy obok zrób sobie tabelę jacy użytkownicy jakie dane mają widzieć i wg niej filtruj wyniki widoku.

Mało kiedy w aplikacjach daje się dostęp do tabeli użytkownikowi. API, albo co najwyżej widok.
Czołem Mirki.
Dziś nowy kurs o optymalizacji zapytań SQL na bazie Oracle.
Kurs dotyczy: SQL: Index Fast Full Scan

W ostatnim wpisie dotyczącym indexów opisywałem działanie FULL SCAN i miałem wielki niedosyt bo bardzo przeplatał się z FAST FULL SCAN. Dlatego też po dzisiejszym kursie można śmiało zobaczyć czym oba skanowania się różnią :)

Jeśli chcesz być wołanym zaplusuj ten wpis, obserwuj tag #oracledev lub zapisz się na mirkolistę: oracleDev

#
@KingFight kiedyś widziałem jakieś narzędzie ale jego funkcja ograniczała się w zasadzie do podpowiadania indexow na kolumnach po których joinujesz i których wykorzystujesz w zapytaniu. Generalnie wydaje mi się, że ciężko byłoby stworzyć takie narzędzia które by dobrze działało bo narzędzia pewnie nie wiem ilu rekordów się spodziewasz, jaki jest przyrost danych, które filtry jak bardzo ograniczają zapytanie czy sam fakt czy dana tabela nie jest już przeładowania indexami
#mssql #sqlserver #bazydanych #bigdata

- Będę miał tabelę, w której będzie kilkaset tysięcy milionów rekordów (a może nawet i kilka miliardów).
- Kolumny to tylko id i jakiś tekst (varchar z około n=20-200).
- Chcę zabezpieczyć się przed duplikatami w kolumnie z tekstem.

Co się stanie jak założę na kolumnie z tekstem unique constraint? Jak bardzo zwolni insert? Ile taki indeks będzie zajmował? Tabela pewnie zajmie z kilkaset GB.
via Wykop Mobilny (Android)
  • 1
@mk321: najszybciej będzie założyć indeks już po insercie, w dodatku dzięki temu nie będzie pofragmentowany. Jeśli chodzi o spowolnienie inserta, to największy wpływ będzie mieć na to fill factor strony i wysokość drzewa(która dzięki logarytnicznej naturze indeksowania będzie w na oko w granicach 8-10 - bez tragedii ;) )
#programowanie #bazydanych
Potrzebuję zapisać do bazy daną, która przyjmuje kilka wartości, w wykorzystaniem prostego ORM. Czy jest coś złego w takim podejściu?

public class UserInfo {
public static final String ASYMMETRY_LEFT="left";
public static final String ASYMMETRY_RIGHT="right";
public static final String ASYMMETRY_NOT_ASYMMETRIC="not asymmmetric";
public static final String ASYMMETRY_NOT_SPECIFIED="not specified";
private String assymetry;
...
}

I teraz przy tworzeniu używaniu obiektu w kodzie używać tylko tych stałych, np. setAsymmetry(UserInfo.ASYMMETRY_LEFT).
@Wyrewolwerowanyrewolwer: android room, wydaje mi się że tutaj musiałbym dużo ręcznie zrobić.
Swoją drogą. Mi też moje podejście tak na intuicję wydaje się "złe", ale w sumie nie potrafię uzasadnić (mam małe doświadczenie z bazami). Jaki może być problem z taką implementacją?