przejście do zawartości
Igor Wojnicki's WIKI
Narzędzia użytkownika
Zaloguj
Narzędzia witryny
Szukaj
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
>
Ostatnie zmiany
Menadżer multimediów
Indeks
Jesteś tutaj:
start
»
pl
»
ztb
»
bazy_nosql
Ślad:
pl:ztb:bazy_nosql
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Bazy NoSQL ====== ===== Wstęp i wymagania ===== Celem ćwiczenia jest zapoznanie się z wybranymi technologiami NoSQL. Do wynkonania ćwiczenia niezbędna jest znajomość: * ''curl'' http://curl.haxx.se/ * JSON * JavaScript ===== Problem do rozwiązania ===== Generowanie statystyk występowania liter. ===== Zaliczenie ===== Warunkiem zaliczenia jest wykonanie poniższych ćwiczeń i prezentacja wyników prowadzącemu zajęcia. ===== CouchDB ===== ==== Przydatne polecenia ==== Eksperymenty z widokami dobrze jest przeprowadzać za pomocą futon: http://nosql.kis.agh.edu.pl:5984/_utils ==== Ćwiczenie 1 ==== Sporządź przynajmniej po 2 dokumenty w każdej z poniższych kategorii w formacie JSON: - ogłoszenia: data, treść, - asortyment: nazwa towaru, opis towaru, sugerowana cena, - wiadomosc: tresc, od kogo, dla kogo, data sporządzenia. Utworz bazę danych w instancji CouchDB dostępnej pod adresem: http://nosql.kis.agh.edu.pl:5984/ Nazwa bazy danych moze byc np. Twoim nazwiskiem. Umieść wszystkie dokumenty w tej samej bazie. Zaprogramuj widok, który policzy ile razy w dokumentach występowała każda z liter alfabetu (dużę i małe litery powinny być nierozróżnialne). Podpowiedź: funckja ''emit()'' może być użyta więcej niż raz w funkcji //map//. Podpowiedź: do testowania JavaScriptu przydaje się konsola w przeglądarce. ===== Riak ===== **UWAGA** :!: ćwiczenia z Riak proszę wykonywać na maszynie ''deepthought.kis.agh.edu.pl''. ==== Przydatne polecenia ==== Wylistowanie wszystkich wiader: <code http> GET /buckets?buckets=true </code> Wylistowanie wszystkich kluczy w wiadrze: <code http> GET /buckets/bucket/keys?keys=true </code> Umieszczenie rekordu w bazie Riaka: <code bash> curl -v -XPUT \ -d '<wartość>' \ http://nosql.kis.agh.edu.pl:8098/riak/<wiadro>/<klucz> </code> Umieszczenie danych w formacie JSON: <code bash> curl -v -XPUT \ -H "Content-Type: application/json" \ -d '<wartość>' \ http://nosql.kis.agh.edu.pl:8098/riak/<wiadro>/<klucz> </code> Umieszczenie rekordu w bazie Riaka z oczytem danych z pliku: <code bash> curl -v -XPUT \ -d @<nazwa_pliku> \ http://nosql.kis.agh.edu.pl:8098/riak/<wiadro>/<klucz> </code> Umieszczenie rekordu z określeniem tagów 2i ([[http://docs.basho.com/riak/latest/dev/using/2i/|secondary indexes]]): <code bash> curl -XPUT \ -H 'x-riak-index-nazwa1_bin: wartosc_tagu' \ -H 'x-riak-index-nazwa2_int: 9999999' \ -d '<wartość>' \ http://nosql.kis.agh.edu.pl:8098/buckets/<wiadro>/keys/<klucz> </code> Definiowanie zadania MapReduce: <code bash> curl -X POST -H "content-type: application/json" \ http://nosql.kis.agh.edu.pl:8098/mapred --data @-<<\EOF {"inputs":[["<wiadro>","<klucz1>"],["<wiadro>","<klucz1>"],["<wiadro>","<klucz1>"]] ,"query":[{"map":{"language":"javascript","source":" // funkcja map w JavaScript "}},{"reduce":{"language":"javascript","source":" // funkcja reduce w JavaScript "}}]} EOF </code> ==== Ćwiczenie 2 ==== Proszę utworzyć kilka plików tekstowych zawierających teksty (np. skopiowane z Wikipedii) w różnych językach - wystarczy po 1-2 akapity na plik. Serwer Riak znajduje się pod adresem [[http://nosql.kis.agh.edu.pl:8098/]]. Proszę umieścić te pliki jako obiekty w wiadrze o nazwie ''imie_nazwisko'', z wybranymi kluczami. Proszę do każdego elementu (obiektu) dodać tag 2i ([[http://docs.basho.com/riak/latest/dev/using/2i/|secondary indexes]] o nazwie ''lang_bin'', zawierający informację o języku tekstu (proponuję wartości ''pl'' oraz ''en''). Następnie proszę napisać skrypt [[http://docs.basho.com/riak/latest/dev/using/mapreduce/|MapReduce]], który zliczy liczbę wystąpień poszczególnych znaków we wszystkich plikach w określonym języku. Klucze obiektów do przetworzenia powinny zostać wybrane na podstawie ich wartości tagu ''lang_bin'', a więc poprzez umieszczenie odpowiednich wartości pól ''index'' oraz ''key'' w sekcji ''input'' zapytania MR. Wynikiem powinna być tablica JSON, zawierająca litery jako klucze, oraz liczby całkowite jako wartości.
pl/ztb/bazy_nosql.txt
· ostatnio zmienione: 2021/01/08 14:09 (edycja zewnętrzna)
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Do góry