Pig Cosa è Pig? Pig è una piattaforma per l'analisi e l'elaborazione parallela di grandi quantità di dati.
|
|
- Dino Romagnoli
- 8 anni fa
- Visualizzazioni
Transcript
1 PIG Pig
2 Pig Cosa è Pig? Pig è una piattaforma per l'analisi e l'elaborazione parallela di grandi quantità di dati. Gli elementi principali di questa piattaforma sono un linguaggio di alto livello Pig Latin un compilatore/interprete che traduce gli scripts in sequenze di Job MapReduce un'infrastruttura per l'esecuzione e la gestione dei Job una shell per l'esecuzione interattiva di comandi Pig Latin E' pratica comune identificare Pig con il linguaggio Pig-Latin.
3 Pig Pig-Latin: un dataflow language Il linguaggio Pig-Latin è stato sviluppato per consentire allo sviluppatore di ragionare ad alto livello e liberarlo dall'onere di convertire il codice in termini di MapReduce. Pig-Latin è un linguaggio di scripting ad alto livello orientato al dataflow programming, in cui tutta l'attenzione è posta sui dati, visti come un flusso di informazioni che attraversando un circuito di istruzioni viene trasformato e modellato, in maniera simile a quanto accade alla musica che attraversa i circuiti di un impianto Hi-Fi prima di esser riprodotta in alta qualità. Questo approccio è diametralmente opposto a quello tradizionale, in cui si progetta il software come un flusso di istruzioni che elabora e processa dei dati esterni.
4 Pig Pig-Latin: un dataflow language Pig-Latin si ispira ai linguaggi funzionali e come tale cerca di esprimere le trasformazioni da eseguire sui dati ma senza dettagliare il come eseguirle Le trasformazioni sono espresse mediante operatori ispirati all'sql join, sort, filter, group by e uno script assume la forma di un dataflow graph in cui ogni trasformazione viene eseguita nel momento in cui viene raggiunta dal flusso di dati, in contrasto con il modello tradizionale in cui ogni operazione viene eseguita non appena il program counter la raggiunge.
5 Pig Pig-Latin: un dataflow language Questo flusso di trasformazione viene automaticamente tradotto dal compilatore in un insieme di job MapReduce ed eseguito in parallelo su un cluster. Alcune operazioni possono facilmente essere espresse in termini di MapReduce [group by order by ] == shuffle + reduce [ filter select ] map per altre, come ad esempio il join, la traduzione non è così immediata. Tuttavia Pig offre delle implementazioni in grado di garantire performance quasi ottimali anche in presenza di dati fortemente sbilanciati (skewed).
6 Pig Perché Pig? Perché è stato realizzato Pig? Perché può essere conveniente utilizzarlo? Il modello di programmazione MapReduce prevede tre step di elaborazione fortemente correlati: { map, shuffle-sort, reduce } ed apprendere l'arte di convertire gli algoritmi noti secondo questo paradigma non è semplice; Spesso è necessario ideare dei percorsi complessi anche per ottenere gli equivalenti MapReduce di operazioni considerate semplici; Questo rende MapReduce costoso sia in termini di sviluppo che di manutenzione ed eventuali riutilizzo del codice; Ottimizzare il codice MapReduce può diventare un'arte per pochi eletti; Pig cerca di porre rimedio a queste difficoltà, ponendosi come un linguaggio semplice ed utilizzabile anche da persone non-hacker ma esperte sui dati.
7 Pig Dove si posiziona nel panorama BigData? Un tipico dataflow processing associato a sistemi BigData. Dove si posiziona Pig?
8 Pig Dove si posiziona nel panorama BigData? raccolta : in questa fase Pig viene utilizzato come interfaccia verso i dati acquisiti da sorgenti diverse, sia batch che real-time o near real-time; esplorazione : Pig si rivela molto utile nella gestione di dati eterogenei e ancora grezzi, viene usato per preparare filtrare i dati spuri, creare dei metadati che aiutino a capire il contenuto ed il valore dei dati stessi, categorizzarli, classificarli e prepararli per l'integrazione con sistemi di warehouse e analytics; elaborazione : Pig viene spesso utilizzato per preparare i dati all'integrazione con altri sistemi, uniformandoli secondo schemi e/o knowledge-bases preesistenti e iniziando la trasformazione da non-strutturati a strutturati;
9 Pig Extract Transform Load (ETL) I maiali sono onnivori e digeriscono di tutto. Pig è stato progettato per lavorare bene anche con dati sporchi e non normalizzati, in cui gli schemi non sono noti o sono inconsistenti. Per tale ragione le operazioni tipiche svolte con Pig sono quelle di verifica della consistenza e della qualità dei dati e della loro preparazione per sistemi che si aspettando dati strutturati o semi-strutturati. Queste operazioni vengono sintetizzate con l'acronimo ETL (extract transform load)
10 Pig Interagire con Pig Pig prevede due modalità di esecuzione: interattiva : attraverso una shell dedicata, per l'esplorazione dei file e la progettazione degli script; batch : per l'esecuzione in produzione degli script; entrambe queste modalità possono essere eseguite in modalità local, per fare dei semplici esperimenti con piccoli file eseguendo i job sulla macchina locale, e mapreduce per utilizzare un cluster.
11 Pig Grunt : la shell La shell di Pig si chiama grunt, come ci ricorda il suo prompt: grunt> Grunt offre alcune funzionalità di una shell tradizionale (ma non tutte): tab-completion sui comandi (non sui file ) command history semplice supporto all'editing Non fornisce invece pipes redirezione I/O esecuzione in background Per uscire dalla shell è sufficiente dare il comando quit o digitare CTRL+D
12 Pig Grunt : la shell Pig lavora nativamente con l'hdfs, per questo Grunt consente di interagire direttamente con esso attraverso il comando fs, le cui opzioni sono le stesse offerte dal comando hadoop fs : mkdir cp du ls cat rm copyfromlocal in questo modo risulta molto semplice interagire con l'hdfs direttamente dalla shell o all'interno degli script.
13 Pig Grunt : la shell L'utilizzo più naturale di Grunt è l'inserimento interattivo di comandi Pig Latin. Questa modalità può essere utile per esplorare un nuovo dataset scrivere il prototipo di un nuovo script sperimentare diverse pipeline alla ricerca di ottimizzazioni Per migliorare l'interattività Pig esegue le elaborazioni solo in seguito ad un comando che prevede la generazione di un output (es. dump o store ). In questo modo è possibile inserire i diversi comandi che compongono lo script senza dover attendere l'elaborazione parziale dei dati e lanciare l'esecuzione dello script attraverso la generazione dei risultati finali.
14 Pig Grunt : la shell Grunt offre inoltre alcune semplici funzioni di controllo per l'esecuzione del codice, attraverso i tre comandi kill jobid: consente di terminare un particolare job exec script: consente di eseguire uno script run script: consente di eseguire uno script Gli ultimi due si differenziano per il fatto che il comando exec esegue lo script esternamente alla shell e mostra solo il risultato finale; il comando run esegue lo script internamente alla shell, come se i comandi fossero digitati in modalità interattiva e dunque al termine dell'esecuzione risulteranno disponibili anche tutti i dati intermedi generati durante l'esecuzione.
15 Pig Strumenti di sviluppo La shell Grunt è un ottimo strumento per esplorare un nuovo dataset e sperimentare vari prototipi per un nuovo script, tuttavia non è molto adatta allo sviluppo ed alla manutenzione degli script. Per questo è dunque conveniente utilizzare dei comuni editor di testo. Esistono tuttavia dei plugin per alcuni dei principali editor (es. Vim, TextMate, Emacs, Eclipse) che forniscono funzionalità quali syntax-higlighting, auto completamento e in alcuni casi integrazione con il framework hadoop per l'esecuzione degli script dall'interno dell'ambiente di sviluppo.
16 Pig Strumenti di sviluppo Durante la parte pratica utilizzeremo un plugin che consente di scrivere e lanciare gli script Pig direttamente da browser.
17 Introduzione al Linguaggio
18 Introduzione al linguaggio Si è detto che è un dataflow language simile ad un linguaggio funzionale. Questo significa che non si dovrà pensare in termini di istruzioni su come eseguire le elaborazioni ma si dovrà organizzare il codice in termini di espressioni che indicano quali elaborazioni eseguire E' importante ricordare che ad una espressione è sempre associato un valore (e dunque un tipo). In Pig-Latin ogni espressione rappresenta un dataset o relazione, ed è concettualmente equivalente ad una tabella SQL contenente tanti record, ognuno dei quali suddiviso in un numero arbitrario di campi o colonne.
19 Introduzione al linguaggio Data l'espressione input = load 'data' input è il nome dell'espressione ottenuta dal caricamento del dataset 'data'. Il nome della relazione è anche detto alias, ma a discapito delle apparenze un alias non è una variabile in quanto l'assegnamento è definitivo. Sebbene sia possibile riutilizzare un alias, questo equivale alla cancellazione della vecchia relazione ad alla creazione di una nuova relazione, con conseguenti ambiguità nell'interpretazione di uno script. E' dunque sconsigliato riutilizzare gli alias, in quanto potenziale fonte di errori. Le keywords di Pig non sono case-sensitive (es load == LOAD), mentre tutto il resto lo è, quindi è bene considerarlo un linguaggio case-sensitive.
20 Introduzione al linguaggio Anche i campi (colonne) delle relazioni hanno dei nomi; questi assomigliano di più a delle variabili perché possono assumere valori diversi in base al record corrente. Tuttavia si distinguono dalle variabili in quanto non è possibile assegnare un valore ad un campo di un singolo record. Tutti i nomi devono iniziare con un carattere alfabetico, seguito da una sequenza arbitraria di caratteri (ASCII), numeri o '_' (underscore). In Pig Latin esistono due tipologie di commento quello multilinea di Java /* */ (eventualmente anche su riga singola) quello su riga singola in stile SQL '--' (doppio meno)
21 Il modello dati Come tutti i linguaggi anche Pig-Latin ha un suo modello dati con cui rappresentare le informazioni su cui deve operare. I tipi supportati si possono suddividere in due categorie: scalari e complessi. I tipi scalari sono gli equivalenti di alcuni tipi nativi in Java { int, long, float, double } chararray String bytearray byte[] (in Java), Blob (in SQL) null null in SQL I tipi complessi sono tre: map, tuple, bag e richiedono una descrizione più dettagliata.
22 Il tipo Map Il tipo map modella un'associazione tra due elementi una chiave (chararray) utilizzata per l'indicizzare il contenuto della collezione un valore (di tipo qualunque, scalare o complesso) utilizzato per contenere i singoli dati Può essere descritto da un'espressione letterale racchiusa tra parentesi quadre ['name' # 'bob', 'age' # 25] Se non viene specificato un tipo, per default Pig assegna al valore il tipo bytearray. A differenza degli equivalenti per altri linguaggi come Java o C++, valori corrispondenti a chiavi diverse possono avere tipi diversi.
23 Il tipo Tuple Una tupla è una sequenza ordinata di dimensione fissata di elementi, detti campi, ed è rappresentata da un'espressione letterale racchiusa tra parentesi tonde ( 'bob', 55 ) E' equivalente ad una riga SQL in cui i campi corrispondono alle colonne di una tabella e possono contenere uno qualunque dei tipi supportati da Pig e ogni campo può essere di tipo diverso. E' possibile accedere ai campi per nome o per posizione tramite l'espressione $N dove N è la posizione del campo nella tupla. E' possibile associare ad una tupla uno schema che definisce il nome ed il tipo di ogni campo.
24 Il tipo Bag Un bag è una collezione non ordinata di tuple, e può essere descritto da un'espressione letterale racchiusa tra parentesi graffe { ('bob', 55), ('sally', 52), ('john', 25) } E' la più generale delle collezioni supportate in Pig e può salvare parte dei suoi dati su file in maniera automatica, mentre gli altri tipi complessi (map e tuple) devono necessariamente essere contenuti in RAM. Può avere uno schema associato che descrive le tuple al suo interno. Tuttavia essendo un insieme non-ordinato non è possibile accedere ai campi per posizione.
25 Schemi La filosofia di Pig è quella di mangiare di tutto dunque anche se una relazione non ha uno schema associato Pig cercherà di fare del suo meglio per stimare la tipologia di dati in base alle operazioni richieste nello script. Tuttavia, quando possibile, è bene definire lo schema perché aiuta Pig nel controllo degli errori e può aumentare le performance. Gli schemi possono essere ricorsivi. Il modo più semplice per comunicare a Pig uno schema è definirlo esplicitamente al caricamento dei dati dividends = load 'NYSE_dividends' as (exchange: chararray, symbol: chararray, date:chararray, dividend: float);
26 Schemi Se si definisce uno schema Pig cercherà di adattare i dati allo schema fornito attraverso dei cast inserendo dei null se mancano i dati scartando eventuali campi in eccesso Se nella definizione dello schema si omettono i tipi dei dati dividends = load 'NYSE_dividends' as (exchange, symbol, date, dividend); Pig assegnerà a ciascun campo il tipo più generico, bytearray, e successivamente cercherà di stimare il tipo più adatto in base all'uso che ne verrà fatto all'interno dello script.
27 Definizione di uno schema Per specificare lo schema di una relazione si deve usare la seguente sintassi Tipo Sintassi Esempio int int as ( a: int ) long long as ( a: long ) map map[ ] o map[tipo] as ( a: map[ ], b: map[int] ) tuple tuple() o tuple( lista di campi) as ( a: tuple(), b: tuple(x: int, y: int ) ) bag bag {} o bag{ t: (lista di campi ) } as ( a: bag{}, b: bag{ t: ( x:int, t:int) }
28 Definizione di uno schema Nel caso relazioni utilizzate spesso, magari in più script, e con schemi complessi specificare ogni volta lo schema può essere scomodo e fonte di errori. In tal caso è possibile utilizzare per la memorizzazione dei dati su disco formati che conservino al loro interno lo schema oppure sistemi dedicati alla gestione degli schemi come HCatalog dividends = load 'NYSE_dividends' using HCatLoader(); In generale è bene non mescolare le due modalità.
29 Deduzione di uno schema Vediamo ora come Pig cerchi di dedurre lo schema di una relazione. daily = load 'NYSE_daily'; calcs = foreach daily generate $7/1000, $3*100.0, SUBSTRING($0, 0,1), $3 - $6; Pur non essendo stato fornito uno schema Pig può assumere che $7 sia un intero perché diviso per un intero $3 sia un double perché moltiplicato per un double $0 sia un chararray perché si estrae una sottostringa $6 sia un numero perché utilizzato in una sottrazione. Tuttavia non sapendo se si tratta di un intero o di un double Pig sceglie l'ipotesi più prudente e assume sia un double
30 Cast Il cast in Pig è analogo a quello in Java e segue la stessa sintassi daily = load 'NYSE_daily'; calcs = foreach daily generate (int)$7 /1000, (double)$3 * 100.0, (chararray)substring($0, 0,1), (double)$6 (double)$3; e segue (quasi) le stesse regole: è possibile eseguire un cast automatico dal tipo più piccolo a quello più grande il cast inverso grande piccolo deve essere esplicito e può causare troncamenti si può fare il cast da chararray a un tipo numerico ma se la stringa non ha un formato corretto il risultato sarà un null
31 Supporto allo sviluppo
32 Supporto allo sviluppo Pig-Latin include un set di comandi pensati per aiutare lo sviluppatore nell'esplorazione dei dati e nello sviluppo degli script describe descrive lo schema associato ad una relazione illustrate mostra alcuni record rappresentativi del dataset per aiutare lo sviluppatore a capirne il formato e la struttura del dataset stesso sample campiona il dataset creandone una versione di dimensione ridotta limit selezione i primi N record di un dataset explain mostra come il compilatore compilerà ed eseguirà lo script in termini di mapreduce
33 describe describe mostra lo schema associato ad una relazione e può essere molto utile nell'apprendimento di Pig-Latin e nello sviluppo degli script. In uno script possono esserci più comandi describe. divs = load 'NYSE_dividends' as (exchange:chararray, symbol:chararray, date:chararray, dividends:float); trimmed = foreach divs generate symbol, dividends; grpd = group trimmed by symbol; avgdiv = foreach grpd generate group, AVG(trimmed.dividends); describe trimmed; describe grpd; describe avgdiv; trimmed: {symbol: chararray, dividends: float} grpd: {group: chararray, trimmed: {(symbol: chararray, dividends: float)}} avgdiv: {group: chararray, double}
34 sample / limit Spesso uno dei modi migliori per testare uno script è quello di lanciarlo sui nostri dati e verificare che i risultati prodotti siano conformi alle attese. Ma operando su BigData questo può richiedere parecchio tempo, per cui è utile avere dei meccanismi per ridurre le dimensioni dei dataset. L'operatore sample consente di selezionare una percentuale di record scelta a caso dal nostro dataset. L'operatore limit invece consente di specificare il numero di record di una relazione da selezionare.
35 sample / limit --sample.pig divs = load 'NYSE_dividends'; some = sample divs 0.1; some conterrà circa il 10% dei record presenti in divs. --limit.pig divs = load 'NYSE_dividends'; first10 = limit divs 10; first10 conterrà i primi 10 record presenti in divs.
36 illustrate Non sempre un semplice campionamento è in grado di cogliere tutti gli aspetti di un dataset. Ad esempio se lo script esegue un join è necessario assicurarsi che esistano dei record con la stessa chiave altrimenti il join restituirà una relazione vuota. L'operatore illustrate serve ad evidenziare il dataflow assicurando di selezionare dei record che arrivino al termine della trasformazione. Per farlo inizia con un sample dei dati ed esegue su di essi lo script assicurandosi tuttavia che ogniqualvolta viene incontrato un operatore che scarta dei risultati (filter, join, ) almeno qualche record superi il filtro. Se tra quelli campionati non ne trova nessuno, ne costruisce uno simile, cioè che rispetti lo schema e che abbia delle caratteristiche tali da fargli superare il filtro.
37 illustrate divs = load 'NYSE_dividends' as (e:chararray, s:chararray, d:chararray, div:float); recent = filter divs by d > ' '; trimmd = foreach recent generate s, div; grpd = group trimmd by s; avgdiv = foreach grpd generate group, AVG(trimmd.div); illustrate avgdiv;
38 illustrate
39 explain Uno dei principali obiettivi di Pig è quello di consentire allo sviluppatore di pensare in termini di dataflow e dimenticare il MapReduce. Tuttavia in alcuni casi è utile sapere cosa succede dietro le quinte. L'operatore explain mostra come Pig compilerà lo script e quindi come il nostro dataflow verrà espresso in termini di MapReduce. Questo può esser utile sia per fare il debug di uno script che per ottimizzarne le performance. L'outupt di explain non è molto intuitivo e per trarne beneficio è richiesto un certo sforzo da parte dello sviluppatore.
40 explain L'operatore explain può esser utilizzato in due modi: su un alias: in maniera analoga a describe si può chiedere a Pig di mostrare il dataflow con cui verranno generati i dati da inserire in una relazione; su uno script: in alternativa si può chiedere a Pig di illustrare l'intero dataflow associato ad uno script L'output prodotto dall'operatore explain consiste di tre grafici in modalità testuale che illustrano le tre fasi di compilazione di uno script: il logical plan il physical plan l'execution plan
41 explain logical plan Dopo una preliminare verifica grammaticale e sintattica dello script viene prodotto il logical plan, che illustra gli operatori logici che Pig utilizzerà per eseguire lo script. Già in questa fase verranno eseguite delle ottimizzazioni, ad esempio anticipando il più possibile l'esecuzione di operatori come filter che riducono le dimensioni dei dati su cui lavorare e consentono di velocizzare l'esecuzione complessiva dello script. Applichiamo l'operatore explain allo script seguente --explain.pig divs = load 'NYSE_dividends' as (exchange, symbol, date, dividends); grpd = group divs by symbol; avgdiv = foreach grpd generate group, AVG(divs.dividends); store avgdiv into 'average_dividend';
42 explain logical plan # # New Logical Plan: # avgdiv: (Name: LOStore Schema: group#11:bytearray,#27:double) ---avgdiv: (Name: LOForEach Schema: group#11:bytearray,#27:double) (Name: LOGenerate[false,false] Schema: group#11:bytearray,#27:double)columnprune:inputuids=[23, 11]ColumnPrune:OutputUids=[27, 11] group:(name: Project Type: bytearray Uid: 11 Input: 0 Column: (*)) (Name: UserFunc(org.apache.pig.builtin.AVG) Type: double Uid: 27) ---(Name: Dereference Type: bag Uid: 26 Column:[3]) ---divs:(name: Project Type: bag Uid: 23 Input: 1 Column: (*)) ---(Name: LOInnerLoad[0] Schema: group#11:bytearray) ---divs: (Name: LOInnerLoad[1] Schema: exchange#10:bytearray,symbol#11:bytearray,date#12:bytearray,dividends#13:bytearray) ---grpd: (Name: LOCogroup Schema: group#11:bytearray, divs#23:bag{ #28:tuple(exchange#10:bytearray,symbol#11:bytearray,date#12:bytearray,dividends#13:bytearray)}) symbol:(name: Project Type: bytearray Uid: 11 Input: 0 Column: 1) ---divs: (Name: LOLoad Schema: exchange#10:bytearray,symbol#11:bytearray,date#12:bytearray,dividends#13:bytearray)requiredfields:[0, 1, 2, 3]
43 explain physical plan Dopo aver ottimizzato il logical plan, Pig produce il physical plan in cui illustra gli operatori fisici che utilizzerà per eseguire lo script. Questo piano assomiglia molto al precedente salvo il fatto che ora sono ben definite sia le funzioni di load store (es. PigStorage) che i percorsi dei file di input ed output.
44 explain physical plan # # Physical Plan: # avgdiv: Store(fakefile:org.apache.pig.builtin.PigStorage) - scope avgdiv: New For Each(false,false)[bag] - scope-11 Project[bytearray][0] - scope-5 POUserFunc(org.apache.pig.builtin.AVG)[double] - scope-9 ---Project[bag][3] - scope-8 ---Project[bag][1] - scope-7 ---grpd: Package[tuple]{bytearray} - scope-2 ---grpd: Global Rearrange[tuple] - scope-1 ---grpd: Local Rearrange[tuple]{bytearray}(false) - scope-3 Project[bytearray][1] - scope-4 ---divs: Load(hdfs://.../user/hue/NYSE_dividends:org.apache.pig.builtin.PigStorage) - scope-0
45 explain execution plan Come ultimo step Pig partendo dal physical plan decide la miglior strategia per distribuire i vari operatori nel minor numero possibile di job MapReduce. Come prima cosa scorre il plan alla ricerca di tutti gli operatori che impongono una fase di reduce (local / global rearrange, package). Poi verifica se è possibile effettuare delle ottimizzazioni sul piano fisico, ad esempio utilizzando dei combiner o includendo alcune delle operazioni di sort nel sort intrinseco fornito dal Hadoop. Al termine di queste analisi Pig ha preparato il suo execution plan con il dettaglio del numero di job e dei vari operatori da eseguire nelle diverse fasi.
46 explain execution plan # # Map Reduce Plan # MapReduce node scope-13 Map Plan grpd: Local Rearrange[tuple]{bytearray}(false) - scope-26 Project[bytearray][0] - scope avgdiv: New For Each(false,false)[bag] - scope-14 Project[bytearray][0] - scope-15 POUserFunc(org.apache.pig.builtin.AVG$Initial)[tuple] - scope Project[bag][3] - scope Project[bag][1] - scope Pre Combiner Local Rearrange[tuple]{Unknown} - scope divs: Load(hdfs://sandbox.hortonworks.com:8020/user/hue/NYSE_dividends:org.apache.pig.builtin.PigStorage) - scope
47 explain execution plan Combine Plan grpd: Local Rearrange[tuple]{bytearray}(false) - scope-30 Project[bytearray][0] - scope avgdiv: New For Each(false,false)[bag] - scope-19 Project[bytearray][0] - scope-20 POUserFunc(org.apache.pig.builtin.AVG$Intermediate)[tuple] - scope Project[bag][1] - scope POCombinerPackage[tuple]{bytearray} - scope Reduce Plan avgdiv: Store(fakefile:org.apache.pig.builtin.PigStorage) - scope avgdiv: New For Each(false,false)[bag] - scope-11 Project[bytearray][0] - scope-5 POUserFunc(org.apache.pig.builtin.AVG$Final)[double] - scope-9 ---Project[bag][1] - scope POCombinerPackage[tuple]{bytearray} - scope Global sort: false
48 Comandi Base
49 Comandi Base Alla base di un qualunque flusso di elaborazione dati c'è la definizione delle sorgenti di input e di output dei dati. Pig latin offre tre comandi per la loro definizione: load per la definizione delle sorgenti di input store per la definizione delle sorgenti di ouptut dump per mostrare i risultati a video (su console)
50 Load Il formato base del comando è input = load 'data'; Per default il comando load lavora su HDFS e assume come directory di partenza la cartella /user/user_name. E' possibile utilizzare sia path assoluti che relativi o anche specificare la URL completa con l'indirizzo del NameNode: hdfs://my.namenode.org/data/ Per default viene usata la funzione di lettura PigStorage che si aspetta in input file testuali separati da tabulazioni.
51 Load E' possibile possibile specificare opzioni diverse attraverso la clausola using /* comma separated values */ input = load 'data' using PigStorage(','); E' possibile specificare sorgenti diverse dall'hdfs, es. Hbase input = load 'data' using HbaseStorage(); o, se noto, specificare uno schema da associare alla relazione input = load 'data' as ( exchange: chararray, symbol: chararray, date: chararray, dividends: float);
52 Load: globs Se si sostituisce il nome del file con quello di una cartella verranno letti tutti i file presenti nella cartella e il loro contenuto sarà accorpato in un'unica relazione. E' possibile filtrare i nomi con delle regular expressions semplificate (globs) Glob Significato? match con ogni singolo carattere * match con zero o più caratteri [abc] match con un singolo carattere tra quelli specificati [a-z] match con un singolo carattere tra quelli specificati dall'intervallo (estremi inclusi) [^abc] match con un singolo carattere che non sia tra quelli specificati [^a-z] match con un singolo carattere che non sia nell'intervallo (estremi inclusi) \c Rimuove ( escapes ) ogni significato speciale del carattere c {aa, bb} match con una delle stringhe indicate nell'elenco
53 store Operazione duale alla lettura è la scrittura che può essere eseguita con il comando store che segue le stesse regole del comando load. Il formato standard è store 'NomeRelazione' into 'nome_file'; che richiamerà la funzione di default PigStorage. Anche in questo caso il comportamento di deafult può essere modificato con la clausola using store 'NomeRelazione' into 'nome_file' using HBaseStorage();
54 dump L'ultima operazione di output è dump utile sopratutto in modalità interattiva per visualizzare a schermo il contenuto di una relazione. Il suo formato è estremamente semplice dump 'NomeRelazione'; Il comando dump forza l'esecuzione di tutti i comandi dati fino ad ora nella shell.
55 Operatori Relazionali
56 Operatori Relazionali Il punto di forza di Pig-Latin sono gli operatori relazionali, che si ispirano agli equivalenti SQL, ma hanno un comportamento lievemente diversi. I principali sono foreach che applica un insieme di espressioni a ciascun record di una relazione filter che consente di selezionare solo i record di interesse group che consente di accorpare i dati secondo order by che consente di riordinare i record di una relazione join che consente di unificare il contenuto di due relazioni
57 foreach L'operatore foreach applica un insieme di espressioni a ciascun record di una relazione e, come risultato, genera la prossima relazione della pipeline. E' equivalente all'operatore di proiezione del SQL. Il suo formato base è piuttosto semplice A = load 'input' as (user: chararray, id: long, address: chararray, phone: chararray, preferences: map[]); B = foreach A generate user, id; in questo esempio si estraggono da A i campi user e id e con essi viene generata la nuova relazione B.
58 foreach Il vero potenziale dell'operatore foreach emerge con l'applicazione di espressioni sui campi di una relazione. Le più semplici espressioni disponibili sono valori costanti e riferimenti ai campi (per nome o posizione con $pos ) prices = load 'NYSE_daily' as (exchange, symbol, date, open, high, low, close, volume, adj_close); gain = foreach prices generate close-open; gain2 = foreach prices generate $6 - $3; Le due relazioni gain e gain2 avranno gli stessi valori
59 foreach E' possibile specificare gruppi di campi attraverso i simboli * per indicare tutti i campi.. per indicare un intervallo di campi prices = load 'NYSE_daily' as (exchange, symbol, date, open, high, low, close, volume, adj_close); beginning = foreach prices generate..open; -- produces exchange, symbol, date, open middle = foreach prices generate open..close; -- produces open, high, low, close end = foreach prices generate volume..; -- produces volume, adj_close
60 foreach Sono inoltre disponibili le operazioni standard tra numeri + - * / % e l'operatore? equivalente all' if-then-else (con il vincolo che i due valori restituiti siano dello stesso tipo). Nella definizione delle espressioni è bene prestare attenzione ai null perché qualunque operazione aritmetica con un null ha come risultato null. 2 == 2? 1 : 4 --returns 1 2 == 3? 1 : 4 --returns 4 null == 2? 1 : 4 -- returns null 2 == 2? 1 : 'fred' -- type error; both values must be of the same type
61 foreach Gli schemi sono strutture ricorsive, dunque è probabile che si abbia la necessità di estrarre informazioni annidate all'interno di tipi complessi. Per farlo è necessario usare gli operatori di proiezione # per le map. per le tuple A = load 'baseball' as (name:chararray, team:chararray, position:bag{t:(p:chararray)}, bat:map[]); avg = foreach A generate bat#'batting_average'; B = load 'input' as (t:tuple(x:int, y:int)); C = foreach B generate t.x, t.$1;
62 foreach Estrarre informazioni da un bag è invece più complesso perché questo non ha un ordine tra i suoi elementi. L'unica cosa che si può fare è applicare la proiezione ai campi delle tuple contenute nel bag e creare un nuovo bag. A = load 'input' as (b:bag{t:(x:int, y:int, Z:int)}); B = foreach A generate b.(x, y);
Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione
Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento
DettagliRiccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino
Integration Services Project SQL Server 2005 Integration Services Permette di gestire tutti i processi di ETL Basato sui progetti di Business Intelligence di tipo Integration services Project SQL Server
DettagliHBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?
NOSQL Data Model HBase si ispira a BigTable di Google e perciò rientra nella categoria dei column store; tuttavia da un punto di vista logico i dati sono ancora organizzati in forma di tabelle, in cui
DettagliOSSIF WEB. Manuale query builder
OSSIF WEB Manuale query builder - Maggio 2010 1) Sommario 1) SOMMARIO... 2 INTRODUZIONE... 3 Scopo del documento... 3 Struttura del documento... 3 Descrizione dell interfaccia grafica... 3 SELEZIONE DI
DettagliExcel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it
Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo
DettagliOperazioni sui database
Operazioni sui database Le operazioni nel modello relazionale sono essenzialmente di due tipi: Operazioni di modifica della base di dati (update) Interrogazioni della base di dati per il recupero delle
DettagliDispensa di database Access
Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di
DettagliStrutturazione logica dei dati: i file
Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliSistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory
FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File
DettagliDatabase. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
DettagliSQL Server 2005. Integration Services. SQL Server 2005: ETL - 1. Integration Services Project
atabase and ata Mi ni ng Group of P ol itecnico di Torino atabase and ata Mi ni ng Group of P ol itecnico di Torino atabase and data mining group, SQL Server 2005 Integration Services SQL Server 2005:
DettagliVolumi di riferimento
Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di
DettagliESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7
ESEMPI DI QUERY SQL Dati di esempio... 2 Query su una sola tabella... 2 Esempio 1 (Ordinamento)... 2 Esempio 2 (Scelta di alcune colonne)... 3 Esempio 3 (Condizioni sui dati)... 3 Esempio 4 (Condizioni
DettagliManuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise
Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3
DettagliCOS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle
DettagliCapitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2
DettagliFunzioni non documentate Openoffice.org. 3 Base mini-howto
Funzioni non documentate Openoffice.org. 3 Base mini-howto Augusto Scatolini (webmaster@comunecampagnano.it) Ver. 1.0 gennaio 2009 Come risolvere il problema del contatore che inizia da 0 (zero) Come importare
DettagliDBMS (Data Base Management System)
Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliLUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014
LUdeS Informatica 2 EXCEL Seconda parte AA 2013/2014 STAMPA Quando si esegue il comando FILE STAMPA, Excel manda alla stampante tutte le celle del foglio di lavoro corrente che hanno un contenuto. Il numero
DettagliNAVIGAORA HOTSPOT. Manuale utente per la configurazione
NAVIGAORA HOTSPOT Manuale utente per la configurazione NAVIGAORA Hotspot è l innovativo servizio che offre ai suoi clienti accesso ad Internet gratuito, in modo semplice e veloce, grazie al collegamento
DettagliGESTIONE CONTRATTI. Contratti clienti e contratti fornitori
SPRING - CONTRATTI La Gestione Contratti di SPRING, in un'azienda, risolve le esigenze relative alla rilevazione dei contratti e delle relative condizioni. In particolare è possibile definire i servizi
DettagliAbilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere
Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.
DettagliRISOLUTORE AUTOMATICO PER SUDOKU
RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU
DettagliModulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...
Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...
DettagliControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi
ControlloCosti Cubi OLAP I cubi OLAP Un Cubo (OLAP, acronimo di On-Line Analytical Processing) è una struttura per la memorizzazione e la gestione dei dati che permette di eseguire analisi in tempi rapidi,
DettagliRegione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da
ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario
DettagliVolume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software
Volume GESTFLORA Gestione aziende agricole e floricole Guidaall uso del software GESTIONE AZIENDE AGRICOLE E FLORICOLE Guida all uso del software GestFlora Ver. 2.00 Inter-Ware Srl Viadegli Innocenti,
DettagliIl linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.
(Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System
DettagliIntroduzione a ROOT. 1. Informazioni generali
Introduzione a ROOT 1. Informazioni generali ROOT è un ambiente visualizzazione e trattamento dati interattivo sviluppato al CERN (si veda il sito ufficiale http://root.cern.ch interamente sviluppato in
DettagliEXCEL FUNZIONI PRINCIPALI
EXCEL FUNZIONI PRINCIPALI Funzione SE() Sintassi: SE(VERIFICA, VALORE SE VERO, VALORE SE FALSO): verifica un valore e ritorna una risposta in base al risultato vero/falso Esempio: =SE(A2=15; "OK"; "NO")
Dettagli1. BASI DI DATI: GENERALITÀ
1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente
DettagliA intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.
Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio
DettagliCapitolo 13. Interrogare una base di dati
Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per
DettagliCreare un sito Multilingua con Joomla 1.6
Creare un sito Multilingua con Joomla 1.6 Istruzioni Vai a: navigazione, ricerca Testo originale: http://docs.joomla.org/language_switcher_tutorial_for_joomla_1.6 Questa guida è valida sia per Joomla 1.6
DettagliJoin in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a
Join in SQL (primo modo) Informatica Lezione 7 Laurea magistrale in Psicologia Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 09- Per formulare interrogazioni che coinvolgono
DettagliCosa è un foglio elettronico
Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti
DettagliOttimizzazione delle interrogazioni (parte I)
Ottimizzazione delle interrogazioni I Basi di Dati / Complementi di Basi di Dati 1 Ottimizzazione delle interrogazioni (parte I) Angelo Montanari Dipartimento di Matematica e Informatica Università di
DettagliAccess. P a r t e p r i m a
Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di
DettagliEXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,
EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
Dettagli. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi
Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare
DettagliChe cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo
Creazione di moduli Creazione di moduli Che cos'è un modulo? Un elenco di domande accompagnato da aree in cui è possibile scrivere le risposte, selezionare opzioni. Il modulo di un sito Web viene utilizzato
DettagliLA GESTIONE DELLE VISITE CLIENTI VIA WEB
LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici
DettagliProgetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore
ARPA Fonte Dati Regione Toscana 1 Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.1 Data emissione 09/10/13 Stato FINAL 2 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 1.1 09/10/2013
DettagliCorso di Informatica
Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio
DettagliGuida rapida per i docenti all'uso della piattaforma di e-learning dell'istituto Giua
Guida rapida per i docenti all'uso della piattaforma di e-learning dell'istituto Giua Moodle è la piattaforma didattica per l'e-learning utilizzata dall'istituto Giua per consentire ai docenti di creare
DettagliLande Immortali: Riepilogo dello Stato di Avanzamento del Progetto
Lande Immortali: Riepilogo dello Stato di Avanzamento del Progetto Progetto a cura di Martino Michele Matricola: 0124000461 Miglio Stefano Matricola: 0124000462 Obiettivi Iniziali Si intende realizzare
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliIstruzioni DML di SQL
Istruzioni DML di SQL Pag. 99 par.4 1 Sintassi: Costrutto: INSERT INTO (Inserimento di dati in tabelle) INSERT INTO [(, ,, )] VALUES (, ,
DettagliCHIUSURE di MAGAZZINO di FINE ANNO
CHIUSURE di MAGAZZINO di FINE ANNO Operazioni da svolgere per il riporto delle giacenze di fine esercizio Il documento che segue ha lo scopo di illustrare le operazioni che devono essere eseguite per:
DettagliSiti web centrati sui dati Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
DettagliMOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013]
MOCA Modulo Candidatura http://www.federscacchi.it/moca moca@federscacchi.it [Manuale versione 1.0 marzo 2013] 1/12 MOCA in breve MOCA è una funzionalità del sito web della FSI che permette di inserire
DettagliDefinire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
DettagliBanca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste
Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)
DettagliVariabili e tipi di dato
Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per
DettagliIl database management system Access
Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio
DettagliCOLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo
Release 5.20 Manuale Operativo COLLI Gestione dei Colli di Spedizione La funzione Gestione Colli consente di generare i colli di spedizione in cui imballare gli articoli presenti negli Ordini Clienti;
DettagliOrganizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
DettagliDispensa 3. 1.1 YACC: generalità
Dispensa 3 1.1 YACC: generalità Il tool Yacc (acronimo per Yet Another Compiler Compiler) è uno strumento software che a partire da una specifica grammaticale context free di un linguaggio scritta in un
DettagliLinguaggi e Paradigmi di Programmazione
Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una
DettagliCREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS
CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu
DettagliDatabase e reti. Piero Gallo Pasquale Sirsi
Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente
Dettagli4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
DettagliData Base. Master "Bio Info" Reti e Basi di Dati Lezione 6
Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica
DettagliEsercitazione 4 JDBC
JDBC Obiettivi dell esercitazione Familiarizzare con l'organizzazione dell'ambiente di lavoro per la realizzazione di applicazioni Java Utilizzare i costrutti di base della libreria JDBC per 1. la gestione
DettagliSviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.
Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL. 2ELHWWLYL GD UDJJLXQJHUH SHU JOL VWXGHQWL alla fine dell esercitazione gli studenti dovranno essere in grado di: 1. utilizzare
DettagliIntroduzione al Foglio Elettronico
Microsoft Excel Introduzione al Foglio Elettronico Il Foglio Elettronico Si presenta come una grande tabella su un foglio di carta Le celle contengono differenti dati Numeri Testo Date Ecc I dati possono
DettagliIstruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)
Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza
DettagliSQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12
SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I Anno accademico 2011/12 DEFINIZIONE Il concetto di vista 2 È una relazione derivata. Si specifica l espressione che genera il suo contenuto.
DettagliRichiesta pagina PHP (es: index.php)
PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con
DettagliINFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.
INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed
DettagliCome modificare la propria Home Page e gli elementi correlati
Come modificare la propria Home Page e gli elementi correlati Versione del documento: 3.0 Ultimo aggiornamento: 2006-09-15 Riferimento: webmaster (webmaster.economia@unimi.it) La modifica delle informazioni
DettagliCostruzione del layout in gino cms
Costruzione del layout in gino cms Autore: Marco Guidotti - marco.guidotti(at)otto.to.it Versione: 1.0 Data: 2013-06-17 Layout Nell area amministrativa di gino l applicazione Layout permette di gestire
DettagliCONCETTO DI ANNIDAMENTO
LEZIONE14 SQL ANNIDAMENTI PAG. 1 / 5 PROF. ANDREA ZOCCHEDDU LEZIONE14 SQL ANNIDAMENTI CONCETTO DI ANNIDAMENTO LINGUAGGIO SQL QUERY ANNIDATE Per annidamento si intende la possibilità che, all interno di
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
DettagliGuida all utilizzo. Rif. File: GuidaSi@dmin.pages Pag. 1 / 14
Guida all utilizzo Rif. File: GuidaSi@dmin.pages Pag. 1 / 14 Home page e panoramica delle funzionalità!... 3 La sezione Account!... 4 Creare un Account!... 5 Cambiare la password dell account!... 7 Eliminare
DettagliAppunti sulla Macchina di Turing. Macchina di Turing
Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso
Dettagliper immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1
Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Il raggruppamento e la struttura dei dati sono due funzioni di gestione dati di Excel, molto simili tra
DettagliIntroduzione ai database relazionali
Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita
DettagliCapitolo 4 Pianificazione e Sviluppo di Web Part
Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,
DettagliGestione Turni. Introduzione
Gestione Turni Introduzione La gestione dei turni di lavoro si rende necessaria quando, per garantire la continuità del servizio di una determinata struttura, è necessario che tutto il personale afferente
DettagliF G H I L. Sulla base della figura, nel programma sono usate le seguenti definizioni:
La gestione della distinta base permette l'inserimento, la variazione, la cancellazione e la consultazione delle informazioni inerenti la composizione dei prodotti. Per facilitare la successiva descrizione
DettagliEsercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:
Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare
DettagliIntroduzione al Python
Andrea Passerini passerini@disi.unitn.it Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti
DettagliCapitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti
Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta
DettagliDispensa di Informatica I.1
IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.
DettagliProtocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014
Progetto ICoNLingua Scienza senza Frontiere CsF- Italia Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 1. Introduzione La valutazione sia in itinere
DettagliHub-PA Versione 1.0.6 Manuale utente
Hub-PA Versione 1.0.6 Manuale utente (Giugno 2014) Hub-PA è la porta d ingresso al servizio di fatturazione elettronica verso la Pubblica Amministrazione (PA) a disposizione di ogni fornitore. Questo manuale
Dettagli5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9
5.2.1 RELAZIONI TRA TABELLE 1 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 Il grado di un verso di un associazione indica quanti record della tabella di partenza si associano ad un
DettagliCORSO DI INFORMATICA SUSANNA PIVETTI MAURO GIACOMINI
SUSANNA PIVETTI MAURO GIACOMINI 1 LA "STAMPA UNIONE" CON WORD 2 3 LA STAMPA UNIONE La "stampa unione" è una particolare procedura che consente di importare in un documento principale dei dati memorizzati
DettagliArchitettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
DettagliCompilatore risorse display grafico LCD serie IEC-line
Compilatore risorse display grafico LCD serie IEC-line aggiornamento: 22-11-2012 IEC-line by OVERDIGIT overdigit.com 1. Il display grafico LCD I PLC della serie IPC-line possono disporre opzionalmente
DettagliNuovi Flussi Informativi Cooperazione Applicativa Youth Guarantee
Nuovi Flussi Informativi Cooperazione Applicativa Youth Guarantee Sommario 1 Introduzione... 2 2 Garanzia Giovani... 2 3 La Cooperazione Applicativa... 2 3.1 Presa in carico del cittadino... 3 3.1.1 Adesione
DettagliSOMMARIO... 3 INTRODUZIONE...
Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...
Dettagli2003.06.16 Il sistema C.R.M. / E.R.M.
2003.06.16 Il sistema C.R.M. / E.R.M. Customer / Enterprise : Resource Management of Informations I-SKIPPER è un sistema di CONOSCENZE che raccoglie ed integra INFORMAZIONI COMMERCIALI, dati su Clienti,
DettagliGHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.
*+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti
DettagliLaboratorio di Informatica
Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di
DettagliORGANIZZAZIONE PRODOTTI
GESTIONE PRODOTTI 1 INTRODUZIONE In questa parte di manuale vediamo l organizzazione gerarchica dei prodotti in CRM e in che modo provvigioni, piani e promozioni vengono assegnate al prodotto. 2 ORGANIZZAZIONE
Dettagli