· 6 years ago · May 25, 2019, 07:20 PM
11. HDFS
2Komenda podstawowa:
3 hdfs dfs -<command>
4
5Stwórz katalog:
6 hdfs dfs -mkdir MOJE_PRACE
7
8Umieść pusty plik test1.txt:
9 touch test1.txt
10 hdfs dfs -put test1.txt MOJE_PRACE (lub w 1 kroku - touchz)
11
12Wypisz zawartość katalogu i podkatalogów:
13 hdfs dfs -ls -R (lub -lsr)
14
15Skopiuj plik wewnÄ…trz HDFS:
16 hdfs dfs -cp <src> <dest>
17
18Wyświetl zawartość pliku:
19 hdfs dfs -cat <plik>
20
21Pobierz plik z HDFS:
22 hdfs dfs -get <src_hdfs> <dest_local>
23
24Skopiuj plik z local do HDFS (alternatywa dla put):
25 hdfs dfs -copyFromLocal <src> <dest>
26
27
28
292. PigLatin
30Otwórz interpreter:
31 pig
32
33Wykonaj zadanie i wypisz na ekran rezultat:
34 dump <zmienna>;
35
36Zapisz wynik do folderu (nie pliku!):
37 STORE <zmienna> INTO '/user/root/<path>';
38
39Wczytaj linie pliku jako rekord o nazwie linijka:
40 plik = load '/user/root/MOJE_PRACE/lab3-pig-p2.txt' as (linijka);
41
42Wczytaj linie pliku z rozróżnieniem kolumn:
43 plik = load '/user/root/MOJE_PRACE/movies_data.csv' using PigStorage(',') as (identyfikator,tytul,rok,ocena,czas_trwania);
44
45Podziel każdą linjke na tokeny:
46 wyrazy = foreach plik generate flatten(TOKENIZE(linijka)) as wyraz;
47
48Pogrupuj razem wyrazy po każdym wyrazie:
49 grupa = group wyrazy by wyraz;
50
51Policz wyrazy w grupach:
52 policz = foreach grupa generate group, COUNT(wyrazy);
53
54Przefiltruj wyniki z rzutowaniem na float:
55 filter_var = FILTER plik BY ((float) rok == 1949);
56 // 2 warunki
57 filter_var = FILTER plik BY ((float) rok >`= 1949) AND ((float) rok <= 1961);
58
59Wybierz niektóre kolumny:
60 foreached = foreach plik generate title, ((float) czas_trwania / 60);
61
62Posortuj rekordy według kolumny:
63 sorted = order plik by rok desc;
64
65Policz sumÄ™ na jakieÅ› kolumnie:
66 groups = group plik all;
67 sum_of = foreach groups generate SUM(plik.<col>) as suma;
68 // potem tego 'suma' mogę użyć w poleceniu
69
70Opisz strukture danych przechowywanych w zmiennej:
71 describe plik;
72
73Wyświetl logczine, fizyczny i MapReduce plany wykonania polecenia:
74 explain var;
75
76Skróć listę rekordów do 10:
77 plik_10 = limit plik 10;
78
79Pokaż listę krok-po-kroku wykonania:
80 illustrate plik_10;
81
82Pogrupuj po 2 relacjach jednocześnie:
83 cogrouped = cogroup employees by age, students by age;
84
85Połącz 2 relacje przez JOIN:
86 // self-join, id to klucz
87 joined = join employees by id, students by id;
88 // inner-join
89 joined = join employees by name, students by name;
90 // left-outer join
91 joined = join employees by id LEFT OUTER, students by id;
92 // right-outer join
93 joined = join employees by id RIGHT, students by id;
94 // full-outer join
95 joined = join employees by id FULL OUTER, students by id;
96
97Połącz 2 relacje przez UNION:
98 unioned = UNION rel1, rel2;
99
100Podziel zbiór na kilka:
101 splitted = split rel1 into rel2 if (age<50), rel3 if (age==50), ...;
102
103
104=== === Zadania:
105WordCount:
106 plik = load '/user/cloudera/tekst.txt' as (linijka);
107 wyrazy = foreach plik generate flatten(TOKENIZE(linijka)) as wyraz;
108 grupa = GROUP wyrazy BY wyraz;
109 result = FOREACH grupa GENERATE group, COUNT(wyrazy.wyraz);
110 dump resutl;
111
112
113Gracze:
114Wypisz identyfikatory wszystkich drużyn (teamID), w których w roku 1985 każdy gracz zarabiał powyżej 100000.
115 salary = load ...
116 A = FILTER salary BY yearID == 1985;
117 B = GROUP A BY teamID;
118 C = FOREACH B GENERATE group, MIN(A.salary) as salary;
119 D = FILTER C BY salary > 100000;
120 DUMP D;
121
122Wypisz identyfikatory wszystkich drużyn (teamID) wraz ze średnim wynagrodzeniem w tych drużynach w 1998.
123 salary = load '/user/cloudera/Salaries.csv' USING PigStorage(',') as (yearID:int,teamID:chararray,lgID:chararray,playerID:chararray,salary:int);
124 A = FILTER salary BY yearID == 1998;
125 B = GROUP A BY teamID;
126 C = FOREACH B GENERATE group, AVG(A.salary) as salary;
127 DUMP C;
128
129Wypisz dla każdej ligii (lgID) liczbę drużyn w 1999
130 salary = load '/user/cloudera/Salaries.csv' USING PigStorage(',') as (yearID:int,teamID:chararray,lgID:chararray,playerID:chararray,salary:int);
131 A = FILTER salary BY yearID == 1999;
132 B = GROUP A BY lgID;
133 C = FOREACH B GENERATE group, COUNT(A) as salary;
134 DUMP C;
135
136Wypisz top 10 graczy z najwieksza liczbe uderzen (H-hits) w 1988. Wypisz playerID i liczbe tych uderzen.
137 batting = load '/home/cloudera/Batting.csv' using PigStorage(',') AS (
138 playerID:chararray,yearID:int,stint:int,teamID:chararray,lgID:chararray,
139 G:int,G_batting:int,AB:int,R:int,H:int,a2B:int,a3B:int,HR:int,RBI:int,SB:int,
140 CS:int,BB:int,SO:int,IBB:int,HBP:int,SH:int,SF:int,GIDP:int,G_old:int
141 );
142 batting1988 = FILTER batting BY (yearID == 1988);
143 gracze = GROUP batting1988 BY playerID;
144 uderzenia = FOREACH gracze GENERATE group, SUM(batting1988.H) as uderzeniaSuma;
145 uderzeniaSort = ORDER uderzenia BY uderzeniaSuma DESC;
146 result = LIMIT uderzeniaSort 10;
147 dump result;
148
149Wypisz graczy, ktorzy rozgrywali najwiecej gier w 1980 (G_batting - kolumna nr 7). Wypisz playerID i liczbe tych gier.
150 batting = load '/home/cloudera/Batting.csv' using PigStorage(',') AS (
151 playerID:chararray,yearID:int,stint:int,teamID:chararray,lgID:chararray,G:int,
152 G_batting:int,AB:int,R:int,H:int,a2B:int,a3B:int,HR:int,RBI:int,SB:int,
153 CS:int,BB:int,SO:int,IBB:int,HBP:int,SH:int,SF:int,GIDP:int,G_old:int
154 );
155 batting1980 = FILTER batting BY (yearID == 1980);
156 gracze = GROUP batting1980 BY playerID;
157 gry = FOREACH gracze GENERATE group, SUM(batting1980.G_batting) as grySuma;
158 grySort = ORDER gry BY grySuma DESC;
159 result = LIMIT grySort 10;
160 dump result;
161
162Wypisz graczy, ktorzy w druzynie ML1 wykonali najwiecej biegow (runs-R). Wypisz playerID i liczbe R.
163 batting = ...
164 battingML1 = FILTER batting BY (teamID=='ML1');
165 gracze = GROUP battingML1 BY playerID;
166 biegi = FOREACH gracze GENERATE group, SUM(battingML1.R) as biegiSuma;
167 biegiSort = ORDER biegi BY biegiSuma DESC;
168 result = LIMIT biegiSort 10;
169 dump result;
170
171Na podstawie plikow Salaries.csv i Batting.csv wypisz graczy, ktorzy zarobili w 2001 powyzej 500000 i maja wiecej niz 50 biegow do bazy (homeruns-HR)
172 batting = ....
173 gracze = load '/home/cloudera/Salaries.csv' using PigStorage(',') as (
174 yearID:int, teamID:chararray, lgID:chararray, playerID:chararray, salary:float
175 );
176 graczeFilter = FILTER gracze BY (yearID==2001 and salary>500000);
177 battingFilter = FILTER batting BY (HR > 50);
178 zlaczenie = JOIN battingFilter BY playerID, graczeFilter BY playerID;
179 dump zlaczenie;
180
181??
182?
183 plik = load '/user/cloudera/kolokwium/yob1880.txt' USING PigStorage(',') as (firstname:chararray,sex:chararray,quantity:int);
184 A = GROUP plik BY sex;
185 sorted = ORDER plik BY quantity DESC;
186 top = LIMIT sorted 3;
187 B = FOREACH A GENERATE group, flatten(top.firstname);
188 DUMP B;
189
190Samoloty:
191flights = load '/cos/flights.csv' USING PigStorage(',') as (
192 Year,Month,DayofMonth,DayOfWeek,
193 DepTime,CRSDepTime,ArrTime,CRSArrTime,
194 UniqueCarrier,FlightNum,TailNum,
195 ActualElapsedTime,CRSElapsedTime,AirTime,
196 ArrDelay,DepDelay,Origin,Dest,
197 Distance:int,TaxiIn,TaxiOut,Cancelled,
198 CancellationCode,Diverted,CarrierDelay,
199 WeatherDelay,NASDelay,SecurityDelay,
200 LateAircraftDelay
201);
202
203Ile razem mil zostało wylatanych?
204 grupedAllFlights = group flights ALL;
205 totalDist = foreach grupedAllFlights generate SUM(flights.Distance);
206 dump totalDist;
207
208Ile mil zostało wylatanych do poszczególnych miejsc?
209 grupedDestFlights = group flights by Dest;
210 totalDistByDest = foreach grupedDestFlights generate group, SUM(flights.Distance);
211 dump totalDistByDest;
212
213Biały Dom
214 whiteHouseList = LOAD '/cos/white_house.csv' USING PigStorage(',') AS (
215 NAMELAST,NAMEFIRST,NAMEMID,UIN,BDGNBR,ACCESS_TYPE,TOA,POA,TOD,
216 POD,APPT_MADE_DATE,APPT_START_DATE,APPT_END_DATE,APPT_CANCEL_DATE,
217 Total_People,LAST_UPDATEDBY,POST,LastEntryDate,TERMINAL_SUFFIX,visitee_namelast,
218 visitee_namefirst,MEETING_LOC,MEETING_ROOM,CALLER_NAME_LAST,CALLER_NAME_FIRST,
219 CALLER_ROOM,Description,RELEASE_DATE
220);
221
222Wskaż 10 osób najczęściej odwiedzających: NAMELAST, NAMEFIRST
223 visitors = FOREACH whiteHouseList GENERATE (NAMELAST, NAMEFIRST) AS name;
224 groupedVisitors = GROUP visitors BY name;
225 countedVisitors = FOREACH groupedVisitors GENERATE group, COUNT(visitors);
226 orderedVisitors = ORDER countedVisitors BY $1 DESC;
227 limitedVisitors = LIMIT orderedVisitors 10;
228 DUMP limitedVisitors;
229
230Wskaż 10 osób najczęściej odwiedzanych: visitee_namelast, visitee_namefirst
231 visitees = FOREACH whiteHouseList GENERATE (visitee_namelast, visitee_namefirst) AS name;
232 groupedVisitees = GROUP visitees BY name;
233 groupedVisitees = FOREACH groupedVisitees GENERATE group, COUNT(visitees);
234 groupedVisitees = ORDER groupedVisitees BY $1 DESC;
235 groupedVisitees = LIMIT groupedVisitees 10;
236 DUMP groupedVisitees;
237
238Wskaż 10 najczęściej występujących kombinacji odwiedzający - odwiedzany
239 people = FOREACH whiteHouseList GENERATE(NAMELAST, NAMEFIRST, visitee_namelast, visitee_namefirst) as combo;
240 combinations = GROUP people BY combo;
241 combinations = FOREACH combinations GENERATE group, COUNT(people);
242 combinations = ORDER combinations BY $1 DESC;
243 combinations = LIMIT combinations 10;
244 DUMP combinations;
245
246
247Dane zdrowotne:
248?
249 health = load '/user/cloudera/health.csv' USING PigStorage(',') as (
250 financial_year:chararray,state:chararray,area_of_expenditure:chararray,
251 broad_source_of_funding:chararray,detailed_source_of_funding:chararray,real_expenditure_millions:int
252 );
253 health1011 = FILTER health BY financial_year == '2010-11';
254 healthGrouped = GROUP health1011 BY area_of_expenditure;
255 healthSum = FOREACH healthGrouped GENERATE group, SUM(health1011.real_expenditure_millions) as sum;
256 ordered = ORDER healthSum BY sum DESC;
257 result = LIMIT ordered 5;
258 STORE result INTO './kolo1_3';
259
260?
261 A = load '/user/cloudera/health.csv' USING PigStorage(',') as (
262 financial_year:chararray,state:chararray,area_of_expenditure:chararray,
263 broad_source_of_funding:chararray,detailed_source_of_funding:chararray,real_expenditure_millions:int
264 );
265 B = GROUP A BY area_of_expenditure;
266 sorted = ORDER A BY real_expenditure_millions DESC;
267 top = LIMIT sorted 1;
268 C = FOREACH B GENERATE group, flatten(top.state), MAX(A.real_expenditure_millions);
269 STORE C INTO './kolo1_4';
270
271
2723. Hive
273# Domyślnie baza znajduje sie w /user/hive/warehouse/nazwa_db
274# Impala potrzebuje uprawnień dostępu, żeby załadować plik CSV
275# hdfs dfs -chmod 777 /user/root/*
276
277Utwórz bazę danych
278 CREATE DATABASE [IF NOT EXISTS] <name>;
279
280Pokaż dostępne bazy danych
281 SHOW DATABASES;
282 // zaczynajÄ…ce siÄ™ na bas
283 SHOW DATABASES LIKE 'bas.*';
284
285Usuń bazę danych
286 DROP DATABASE <name>;
287
288Usuń tabelę
289 DROP TABLE <db_name>.<table_name>;
290
291Wyświetl informacje o bazie danych
292 DESCRIBE DATABASE [EXTENDED] <name>;
293
294Zmień właściciela bazy danych
295 ALTER DATABASE <name> SET DBPROPERTIES ('owner'='Marcin Kwapisz');
296
297Utwórz nową tabelę
298 CREATE TABLE baseball.temp_salary(
299 year INT,
300 team_id STRING,
301 league_id STRING,
302 player_id STRING,
303 salary DECIMAL(10,2)
304 ) ROW FORMAT DELIMITED
305 FIELDS TERMINATED BY ','
306 LINES TERMINATED BY '\n';
307
308Utwórz nową tabelę w formacie ORC (lub Parquet)
309 CREATE TABLE baseball.salary(
310 year INT,
311 team_id STRING,
312 league_id STRING,
313 player_id STRING,
314 salary DECIMAL(10,2)
315 )
316 STORED AS ORC;
317
318Wprowadź dane do nowej tabeli ze starej
319 INSERT OVERWRITE TABLE baseball.salary SELECT * FROM baseball.temp_salary;
320 // utwórz i wprowadź dane jednocześnie
321 CREATE TABLE baseball.salary STORED AS ORC AS SELECT * FROM baseball.temp_salary;
322
323Ustaw pomijanie pierwszego wiersza jako headera
324 ALTER TABLE baseball.temp_salary set
325 TBLPROPERTIES ("skip.header.line.count"="1");
326
327Åadowanie pliku do tabeli
328 LOAD DATA INPATH '/user/root/Salaries.csv' OVERWRITE INTO TABLE baseball.temp_salary;
329
330
331=== === Zadania === ===
332Podaj dane 5 baseballistów, którzy zarobili najwięcej w swojej karierze zawodowej
333 SELECT player_id, MAX(salary) AS max from baseball.salary GROUP BY player_id ORDER BY max DESC LIMIT 5;
334
335 ~~ OUTPUT ~~
336 rodrial01 377416252
337 jeterde01 264618093
338 ramirma02 206827769
339 sabatcc01 193642856
340 teixema01 191150000
341
342Który z tych 5 zawodników miał najwyższe wynagrodzenie roczne i w którym roku? (2 punkty)
343 SELECT a.playerid, a.salary, a.yearid
344 FROM baseball.kolo_salary a
345 INNER JOIN (SELECT playerid, SUM(salary) as slry FROM baseball.kolo_salary GROUP BY playerid ORDER BY slry DESC LIMIT 5) b ON a.playerid = b.playerid
346 ORDER BY a.salary DESC LIMIT 1;
347
348 ~~ OUTPUT ~~
349 rodrial01 33000000 2010
350
351Dla każdego roku podaj gracza z najwyższą wartością zdobytych punktów (run - przejście przez bazę domową)
352 SELECT player_id, MAX(salary) AS max from baseball.salary GROUP BY player_id ORDER BY max DESC LIMIT 5;
353
354 CREATE TABLE baseball.batting(
355 playerID string,
356 yearID int,
357 stint int,
358 teamID string,
359 lgID string,
360 G int, AB int, R int, H int, a2B int, a3B int, HR int, RBI int, SB int, CS int, BB int, SO int, IBB int, HBP int, SH int, SF int, GIDP int
361 )
362 ROW FORMAT DELIMITED
363 FIELDS TERMINATED BY ','
364 LINES TERMINATED BY '\n'
365 tblproperties ("skip.header.line.count"="1");
366
367 LOAD DATA INPATH '/user/cloudera/Batting.csv' OVERWRITE INTO TABLE baseball.batting;
368
369 SELECT a.playerID, b.yearID, b.ir
370 FROM baseball.batting a
371 JOIN (SELECT yearID, MAX(R) as ir FROM baseball.batting GROUP BY yearID) b ON a.yearID = b.yearID AND a.R = b.ir;
372
373Znajdź zawodnika z najwyższą liczbą AB (At bat) i wylicz dla niego jego średnią odbić bating average (BA=H/AB, H - hits) w każdym roku
374 -- to zapytanie złożone może się wywalić przez brak pamięci
375 SELECT b.playerID, b.iab, (a.H/a.AB)
376 FROM baseball.batting a
377 JOIN (SELECT playerID, MAX(AB) as iab FROM baseball.batting GROUP BY playerID) b ON a.playerID = b.playerID AND a.AB = b.iab
378 ORDER BY b.iab DESC LIMIT 1;
379
380 -- alternatywne rozwiązanie na brak pamięci
381 SELECT playerid, ab, h/ab as bating_average FROM baseball.BattingPost ORDER BY ab DESC LIMIT 1;
382 --zapytanie zlozone nie pojdzie bo leci outOfMemory, trzeba zrobić na 2x niestety
383
384 CREATE TABLE baseball.Batting_sum_ab STORED AS ORC
385 AS
386 SELECT playerid, SUM(ab) as abs
387 FROM baseball.Batting
388 GROUP BY playerid
389 ORDER BY abs DESC
390 LIMIT 1;
391
392 SELECT a.yearid, avg(a.h/a.ab)
393 FROM baseball.Batting a, baseball.Batting_sum_ab b
394 WHERE a.playerid = b.playerid
395 GROUP BY a.yearid;
396
397Podaj zespoły w kolejności malejącej dla których rzucający (pitch) zdobyli największą liczbę strikeout - SO (wyeliminowanie odbijającego)
398 --zwykly select potrafi sie wyjebac (brak pamiec), trzeba wynik od razu zapisc do orc
399 CREATE TABLE baseball.Pitching_sum_so STORED AS ORC
400 AS
401 SELECT teamID, SUM (so) as suma
402 FROM baseball.Pitching
403 GROUP BY teamID
404 ORDER BY suma desc;
405
406 SELECT * FROM baseball.Pitching_sum_so;
407
408Złączenie dwóch tabel i wyświetlenie imion zamiast playerID
409 SELECT battingpost_name.playername, battingpost_r.yearid, battingpost_r.max
410 FROM testdb.battingpost_r, testdb.battingpost_name
411 WHERE battingpost_name.playerid = battingpost_r.playerid;
412
413Pokaż graczy którzy zdobyli ponad 45 home run (HR) w sezonie
414 SELECT a.playerID, b.ihr
415 FROM baseball.batting a
416 JOIN (SELECT yearID, SUM(HR) as ihr FROM baseball.batting GROUP BY yearID) b ON a.yearID = b.yearID AND a.HR = b.ihr WHERE ihr > 45;
417
418 SELECT playerID, yearID, SUM(HR) as shr FROM baseball.batting GROUP BY playerID, yearID HAVING shr > 45;
419 SELECT playerID FROM baseball.batting WHERE HR > 45;
420
421Załaduj do bazy Hive dane z plików AwordsManagers.csv, Managers.csv i Master.csv
422 CREATE TABLE baseball.awardsmanagers (
423 playerID string,
424 awardID string,
425 yearID int,
426 lgID string,
427 tie string,
428 notes string
429 ) ROW FORMAT DELIMITED
430 FIELDS TERMINATED BY ','
431 LINES TERMINATED BY '\n';
432
433 CREATE TABLE baseball.managers (
434 playerID string,
435 yearID int,
436 teamID string,
437 lgID string,
438 inseason int,
439 G int,
440 W int,
441 L int,
442 rank int,
443 plyrMgr string
444 ) ROW FORMAT DELIMITED
445 FIELDS TERMINATED BY ','
446 LINES TERMINATED BY '\n';
447
448 CREATE TABLE baseball.master (
449 playerID string,
450 birthYear int,
451 birthMonth int,
452 birthDay int,
453 birthCountry string,
454 birthState string,
455 birthCity string,
456 deathYear int,
457 deathMonth int,
458 deathDay int,
459 deathCountry string,
460 deathState string,
461 deathCity string,
462 nameFirst string,
463 nameLast string,
464 nameGiven string,
465 weight int,
466 height int,
467 bats string,
468 throws string,
469 debut string,
470 finalGame string,
471 retroID string,
472 bbrefID string
473 ) ROW FORMAT DELIMITED
474 FIELDS TERMINATED BY ','
475 LINES TERMINATED BY '\n';
476
477 LOAD DATA INPATH '/user/cloudera/AwardsManagers.csv' OVERWRITE INTO TABLE baseball.awardsmanagers;
478 LOAD DATA INPATH '/user/cloudera/Managers.csv' OVERWRITE INTO TABLE baseball.managers;
479 LOAD DATA INPATH '/user/cloudera/Master.csv' OVERWRITE INTO TABLE baseball.master;
480
481 ALTER TABLE baseball.awardsmanagers set TBLPROPERTIES ("skip.header.line.count"="1");
482 ALTER TABLE baseball.managers set TBLPROPERTIES ("skip.header.line.count"="1");
483 ALTER TABLE baseball.master set TBLPROPERTIES ("skip.header.line.count"="1");
484
485Podaj imię i nazwisko najbardziej utytułowanego managera i liczbę nagród które dostał (dowolnych nagród we wszystkich ligach)
486 SELECT a.nameFirst, a.nameLast, b.sum
487 FROM baseball.master a
488 INNER JOIN (SELECT playerid, COUNT(*) as sum FROM baseball.awardsmanagers GROUP BY playerid ORDER BY sum DESC LIMIT 1) b ON a.playerid = b.playerid;
489
490Dla tego managera podaj jego łączną liczbę meczów, liczbę zwycięstw i porażek
491 SELECT a.playerid, SUM(a.G), SUM(a.W), SUM(a.L)
492 FROM baseball.managers a INNER JOIN (SELECT playerid, COUNT(*) as sum FROM baseball.awardsmanagers GROUP BY playerid ORDER BY sum DESC LIMIT 1) b ON a.playerid = b.playerid GROUP BY a.playerid;
493
494
495
4964. HBase
497Utwórz tabelę 'serwis' z rodzinami 'product' oraz 'customer'
498 create 'serwis','product','customer'
499
500Wyświetl listę tabel
501 list
502 // tabelÄ™ 'serwis'
503 list 'serwis'
504
505Wyświetl strukturę tabeli (i liczbę wersji)
506 describe 'serwis'
507
508Dodaj dane do wiersza 1 (może być dowolna nazwa) do rodziny 'product' i kolumny 'id_produktu'
509 put 'serwis','1','product: id_produktu', 'P100'
510 // itd...
511 put 'serwis','2','product: id_produktu', 'P200'
512
513Wyświetl dane z jednego (całego) wiersza
514 get 'serwis', '1'
515
516Wyświetl dane z dwóch kolumn jednocześnie
517 get 'serwis', '1', {COLUMNS => ['ticket: id_zgloszenia', 'ticket: status']}
518
519Wyświetl dane z dwóch wersji jednocześnie
520 get 'serwis', '1', {COLUMN => 'ticket: status', VERSIONS => 2}
521
522Wyświetl wszystkie dane
523 scan 'serwis'
524
525Wyświetl identyfikatory i opisy pierwszych dwóch produktów
526 scan 'serwis', {COLUMNS => ['product: id_produktu', 'product: opis'], LIMIT => 2}
527
528Usuń tabele
529 disable 'serwis'
530 drop 'serwis'
531
532Usuń jedną z rodzin kolumn
533 alter 'serwis', {NAME => 'ticket', METHOD => 'delete'}
534 // lub
535 alter 'books', 'delete' => 'family_name'
536
537Niech rodzina przechowuje 2 wersje danych
538 alter 't1', NAME => 'fam1', VERSIONS => 2
539
540Policz liczbÄ™ wierszy
541 count 't1'
542
543Dodaj nowÄ… rodzinÄ™ kolumn
544 alter 't1', NAME => 'fam_new'
545
546Przeszukaj tabelę pod kątem występowania ciągu „Dupa†- skorzystaj z filtru (SingleColumnValueFilter)
547 scan 'contacts', { FILTER => "SingleColumnValueFilter('family_name', 'col_name', =, 'binaryprefix:Dupa')" }
548 // alternatywnie
549 scan 'contacts', { COLUMNS => 'family_name: col_name', FILTER => "ValueFilter( =, 'binaryprefix:Dupa' )" }