YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: DS2 - Analytics, Business Intelligence and Data Management · DS2 Kenneth Rørdam, NextBridge Consulting AS FANS 2. mars, 15. mars og 16. mars 2016 •Hvorfor DS2 •Hvordan komme

DS2

Kenneth Rørdam, NextBridge Consulting AS

FANS

2. mars, 15. mars og 16. mars 2016

• Hvorfor DS2• Hvordan komme i gang• Metode vs. Makro• JSON• Pakke• NLS Transcoding Failure• Demo fra fremtiden

Page 2: DS2 - Analytics, Business Intelligence and Data Management · DS2 Kenneth Rørdam, NextBridge Consulting AS FANS 2. mars, 15. mars og 16. mars 2016 •Hvorfor DS2 •Hvordan komme

Hvorfor DS2

Page 3: DS2 - Analytics, Business Intelligence and Data Management · DS2 Kenneth Rørdam, NextBridge Consulting AS FANS 2. mars, 15. mars og 16. mars 2016 •Hvorfor DS2 •Hvordan komme

proc ds2;

data tabell_ny (overwrite = yes);

dcl char(20) variabel;

method metode();

end;

method init();

end;

method run();

set tabell_gammel;

metode();

end;

method term();

end;

enddata;

run;

quit;

Hvordan komme i gang

Page 4: DS2 - Analytics, Business Intelligence and Data Management · DS2 Kenneth Rørdam, NextBridge Consulting AS FANS 2. mars, 15. mars og 16. mars 2016 •Hvorfor DS2 •Hvordan komme

Metode vs. Makro

Page 5: DS2 - Analytics, Business Intelligence and Data Management · DS2 Kenneth Rørdam, NextBridge Consulting AS FANS 2. mars, 15. mars og 16. mars 2016 •Hvorfor DS2 •Hvordan komme

proc ds2;

data diff (overwrite = yes keep = (diff varName rowNo));

dcl double diff rowNo;

dcl char(5) varName;

method comp(double varOld, double varNew, char(5) curVar);

if varOld ^= varNew then do;

diff = varOld - varNew;

varName = curVar;

rowNo = _n_;

output;

end;

end;

method run();

set OldNew;

comp(var1O, var1N, 'var1');

comp(var2O, var2N, 'var2');

comp(var3O, var3N, 'var3');

comp(var4O, var4N, 'var4');

comp(var5O, var5N, 'var5');

end;

enddata;

run;

quit;

Page 6: DS2 - Analytics, Business Intelligence and Data Management · DS2 Kenneth Rørdam, NextBridge Consulting AS FANS 2. mars, 15. mars og 16. mars 2016 •Hvorfor DS2 •Hvordan komme
Page 7: DS2 - Analytics, Business Intelligence and Data Management · DS2 Kenneth Rørdam, NextBridge Consulting AS FANS 2. mars, 15. mars og 16. mars 2016 •Hvorfor DS2 •Hvordan komme

{"posts": {

"data": [{

"message": "Godt nytt år! ","created_time": "2015-12-31T12:39:11+0000","from": {

"name": "Kenneth Rørdam","id": "10152342411416945"

},"id": "10152342411416945_10153220753781945"

}],

},"id": "10152342411416945"

}

Page 8: DS2 - Analytics, Business Intelligence and Data Management · DS2 Kenneth Rørdam, NextBridge Consulting AS FANS 2. mars, 15. mars og 16. mars 2016 •Hvorfor DS2 •Hvordan komme

Pakke

method init();

* 2015;

getPosts('1420070400','1427760000');

getPosts('1427846400','1435622400');

getPosts('1435708800','1443571200');

getPosts('1443657600','1451520000');

end;

Page 9: DS2 - Analytics, Business Intelligence and Data Management · DS2 Kenneth Rørdam, NextBridge Consulting AS FANS 2. mars, 15. mars og 16. mars 2016 •Hvorfor DS2 •Hvordan komme

method getPosts(char(10) since_date, char(10) until_date);

* Deklarasjoner;

dcl package http httpPI();

dcl int rc;

dcl varchar(65534) character set utf8 response;

* Oppretter et GET-kall mot Facebook;

httpPI.createGetMethod(

'https://graph.facebook.com/v2.5/me?fields=posts.limit(1000).since(‘

|| since_date ||

').until(‘

|| until_date ||

'){message,created_time,from,id,place}&access_token=' ||

%tslit(&access_token));

* Kjører GET-kallet;

httpPI.executeMethod();

* Mottar responsen -> legges i response-objektet;

httpPI.getResponseBodyAsString(response,rc);

* Starter å lese meldinger;

readPostInfo(response,'','','');

end;

Page 10: DS2 - Analytics, Business Intelligence and Data Management · DS2 Kenneth Rørdam, NextBridge Consulting AS FANS 2. mars, 15. mars og 16. mars 2016 •Hvorfor DS2 •Hvordan komme

method readPostInfo (varchar(65534) character set utf8 response_parent, char(200) msg_parent, char(50) msg_aut_parent, char(40) msg_id_parent);

* Delkarasjoner;

dcl package http httpPI();

dcl package json jsonPI();

* Fyller JSON-objektet med respons-objktet fra forelder;

rc = jsonPI.createParser(response_parent);

* Går gjenneom respons-filen;

do while (rc = 0);

* Henter neste element;

jsonPI.getNextToken(rc, token, tokenType, parseFlags);

* Hvis vi er på "comments"- eller "posts"-elementet (til meldingen);

if (token in ('posts‘ 'comments')) then do;

* Går gjennom alle elementer;

do while (token ^= ']');

* Henter neste element;

jsonPI.getNextToken(rc, token, tokenType, parseFlags);

if (token = 'message') then do; < … > end;

if (token = 'created_time') then do; < … > end;

if (token = 'from') then do; < … > end;

if (token = 'place') then do; < … > end;

if (token = 'id') then do;

jsonPI.getNextToken(rc, token, tokenType, parseFlags);

msg_id_current = token;

httpPI.createGetMethod('https://graph.facebook.com/v2.5'||token||'?fields=comments{……

httpPI.executeMethod();

httpPI.getResponseBodyAsString(response,rc);

readPostInfo(response, msg_current, msg_aut_current, msg_id_current);

end;

if (token = '}') then do;

end;

end;

end;

* Terminerer JSON-objektet;

rc = jsonPI.destroyParser();

end;

Page 11: DS2 - Analytics, Business Intelligence and Data Management · DS2 Kenneth Rørdam, NextBridge Consulting AS FANS 2. mars, 15. mars og 16. mars 2016 •Hvorfor DS2 •Hvordan komme

proc ds2 xcode = ignore;

NLS Transcoding Failure

Page 12: DS2 - Analytics, Business Intelligence and Data Management · DS2 Kenneth Rørdam, NextBridge Consulting AS FANS 2. mars, 15. mars og 16. mars 2016 •Hvorfor DS2 •Hvordan komme

https://partnerwaves.sas.com

Demo fra fremtiden


Related Documents