Generowanie danych losowych w PostgreSQL za pomocą narzędzi EuroDB

Generowanie danych losowych w PostgreSQL za pomocą narzędzi EuroDB

Generowanie danych losowych jest jedną z ważniejszych funkcji baz danych stosowanych w firmach. Wykorzystuje się je na różnych płaszczyznach technicznych, jak i biznesowych. Daje możliwość bezpiecznego testowania baz oraz pomaga rozwijać kompetencje w administracji bazami danych.

Generowanie danych losowych jest jedną z ważniejszych funkcji baz danych stosowanych w firmach. Wykorzystuje się je na różnych płaszczyznach technicznych, jak i biznesowych. Daje możliwość bezpiecznego testowania baz oraz pomaga rozwijać kompetencje w administracji bazami danych.

Nie od dziś wiadomo, że na dobrze prosperujący system informatyczny składa się struktura bazy danych, starannie przygotowane testy i dobrze przeszkolony personel, który potrafi wykorzystać pełnię możliwości bazy. W tym wszystkim ogromną rolę odgrywa właśnie generowanie danych losowych. Dziś pokażemy, jak narzędzia dostępne w ramach platformy bazodanowej EuroDB ułatwiają ten proces.

Zastosowania generatora danych

Pierwszym i najważniejszym zastosowaniem generatora danych jest stworzenie danych testowych, na których można sprawdzać poprawność systemu bazodanowego, badać jego wydajność i odporność na sytuacje graniczne, bez obawy o utratę istotnych danych. Innym równie ważnym aspektem jest możliwość wdrażania nowych członków zespołu w strukturę bazy danych, bez konieczności ujawniania danych produkcyjnych. Jest to szczególnie istotne w czasach obowiązywania RODO, kiedy administrator przypadkowo może ujawnić dane osobiste klientów, a w krytycznych sytuacjach nawet dane kluczowych partnerów spółki. Jest to sytuacja niedopuszczalna, ciągnąca za sobą potencjalne konsekwencje prawne. Oczywiście nie można zapominać o niedoświadczonych administratorach, którzy rozpoczynają przygodę z bazami danych. Dzięki generowaniu danych mogą rozwijać swoje umiejętności bez narażania produkcyjnej infrastruktury na niebezpieczeństwo czy przestoje.

Generator danych dla bazy PostgreSQL

Generator danych losowych zawarty w paczce narzędzi EuroDB został stworzony z myślą o każdym kliencie. Dlatego jest bardzo intuicyjny i prosty w obsłudze. Mimo tej prostoty jest to potężne narzędzie z wieloma opcjami generowania danych, z których najciekawszymi są:

  • generowanie danych z ustalonym offsetem
  • skalowanie per tabela (np. 100 produktów, 10 000 klientów, milion identyfikatorów sesji)
  • ustalanie procentowej wartości NULL (np. brak numeru telefonu klienta)
  • konkatenacja wartości kilku generatorów
  • tworzenie BLOB
  • generator zgodny z algorytmem Luhna (generowanie poprawnych numerów kart kredytowych).

Co ciekawe, wspierane jest również generowanie „przerw w dostępie do danych” symulujących awarie zależnych systemów. Daje to jeszcze większe możliwości testowania bazy danych.

Schemat działania

Za pomocą narzędzia z pakietu EuroDB administrator może wygenerować dane losowe w oparciu o sam schemat bazy danych. Odpowiedzialny za to algorytm przeszukuje między innymi zawarte w nim typy pól, ich parametry i klucze obce, tworząc wirtualny wizerunek bazy. Na jego podstawie generuje dane zgodne z wymogami schematu. Wspierane są główne typy danych, w tym, co istotne, adresy IP i adresy MAC. Administrator ma możliwość strojenia generowanych danych za pomocą parametrów bądź przy użyciu wyrażeń regularnych.

Praktyczne użycie

Tworzenie przykładowych danych za pomocą generatora dostępnego w narzędziach EuroDB jest bardzo proste. Wystarczy po jego uprzednim zainstalowaniu wykonać następującą komendę:

> eurodb-datagenerator schema.sql > result.sql

W miejsce schema.sql należy podać ścieżkę do schematu bazy, dla której chcemy wygenerować przykładowe dane. Natomiast w miejscu result.sql podajemy nazwę pliku wyjściowego.

Aby wygenerowane dane zostały przeniesione do bazy danych, należy wykonać poniższą komendę, podmieniając uprzednio nazwę bazy danych database_name na nazwę bazy, do której mamy zamiar dopisać świeżo wygenerowane dane losowe. Dodatkowo warto zwrócić uwagę, czy nie należy zmienić użytkownika, na którego logujemy się w konsoli bazy danych. Domyślnie jest to postgres. Jeżeli przy wywołaniu poprzedniej komendy w miejscu pliku wyjściowego podamy własną nazwę, inną niż result.sql, należy pamiętać, by tutaj również ją zmienić.

> psql -U postgres -d database_name -a -f result.sql

Podsumowanie

Generowanie przykładowych danych w bazie jest fundamentem dla całej struktury organizacji. Nic więc dziwnego, że platforma bazodanowa EuroDB została wyposażona w mechanizm generowania danych losowych, dzięki któremu testowanie i wdrażanie personelu w strukturę bazy jest proste i bezpieczne. Na temat generowania danych losowych w PostgreSQL bez dodatkowych narzędzi pisaliśmy w odrębnym artykule.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.