Top Banner
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
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

Apr 11, 2019

Download

Documents

phamlien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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