Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Become an Equilibrista: Find the Right Balance ...
Search
FTisiot
December 03, 2019
Technology
310
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Become an Equilibrista: Find the Right Balance in The Analytics Tech Ecosystem
FTisiot
December 03, 2019
More Decks by FTisiot
See All by FTisiot
Apache Kafka JDBC Source Connector: What could go wrong?
ftisiot
0
140
Solve the Knapsack problem with recursive queries and PostgreSQL
ftisiot
0
170
Build an Open Source Data Pipeline
ftisiot
0
340
Get to know Apache Kafka with Jupyter Notebooks
ftisiot
0
770
Fix Your Strings in PostgreSQL
ftisiot
0
290
Practical Tips & Tricks for Apache Kafka Messages Integration
ftisiot
0
260
Track Database Changes with Apache Kafka
ftisiot
0
310
Apache Kafka and Flink: Stateful Streaming Data Pipelines made easy with SQL
ftisiot
0
990
Kickstart your Kafka with Faker Data
ftisiot
0
470
Other Decks in Technology
See All in Technology
Genie Ontologyは銀の弾丸かを考える / Is Genie Ontology a Silver Bullet?
nttcom
0
390
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
2
130
DMM.com 購入改善推進チーム におけるCodeRabbitを用いた レビューフロー改善の一例
ysknsid25
2
660
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
14
2.1k
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
480
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
260
AmplifyHostingConstructからSSRフレームワークのためのホスティング設計を考察する/amplify-hosting-construct
fossamagna
1
230
世界、断片、モデル。そして理解
ardbeg1958
1
130
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
13
6.5k
ソニー銀行におけるビジネスアジリティ向上のためのクラウドシフト戦略
srenext
0
750
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
3.5k
AI時代のYAGNI:「爆速で無駄になった機能」からの学び / 20260720 Naoki Takahashi
shift_evolve
PRO
2
320
Featured
See All Featured
Practical Orchestrator
shlominoach
191
11k
Facilitating Awesome Meetings
lara
57
7k
Color Theory Basics | Prateek | Gurzu
gurzu
0
390
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Exploring anti-patterns in Rails
aemeredith
3
440
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Utilizing Notion as your number one productivity tool
mfonobong
4
420
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Unsuck your backbone
ammeep
672
58k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Designing for Performance
lara
611
70k
Transcript
Francesco Tisiot - @FTisiot Analytics Tech Lead Become an Equilibrista
Find the Right Balance in The Analytics Tech Ecosystem
Verona, Italy http://ritt.md/ftisiot Over10 Years in Analytics
[email protected]
@FTisiot Oracle
ACE Director ITOUG Board President Francesco Tisiot Analytics Tech Lead
Data Engineering Analytics Data Science www.rittmanmead.com
[email protected]
@rittmanmead
A bit of History
Excel Hell
https://www.rittmanmead.com/blog/2018/11/where-are-my-users-coming-from-analysing-obiee-connections-methods/
Unique Source of Truth
None
None
None
Calculated from Scratch Calculated from Scratch AGREEM ENT
Sourced from Certified Datasource Calculated from Scratch
Approach to Data Certification
Top-Down Approach Data Model Definition Implementation Analysis Centralized BI OBIEE
- RPD LOOKER
Bottom-Up Approach Datasource Creation Analysis Datasource Publication Self Service Oracle
Data Visualization Tableau
Top-Down vs Bottom-Up KPI Duplication Security Time To KPI Reusability
Performance
Reusability / Security DataSource A DataSource B Shared Dimension(s) Centralised
BI
Reusability / Security DataSource A DataSource B Dim X Self
Service BI Dim X
Self-Service BI
Self Service Centralised
The Right Tool: OAC
Sourcing from Central System Select "Dim Account"."Account Code", "Fact Churn"."Churn
Prediction" from "Churn" No Formula Recalculation No Join, Filtering, Aggregation Knowledge Security Inheritance No Code Duplication
None
Hybrid
Self Service Centralised
Awareness
Documentation
RPD Metadata Dictionary
Suggestions
Complexity Key Factors Security Data Volumes Interest
Key Factors Centralised Self Service Complexity Low High Interest Narrow/Unique
Wide/Repeated Security Easy Complex Data Volumes Small Big
Self Service Centralised ?
Control
Keeping Track Usage Tracking!
Usage Tracking SELECT DISTINCT USER_NAME, NVL(QUERY_SRC_CD, 'RPD ODBC') SOURCE, TRUNC(START_TS)
TS FROM S_NQ_ACCT WHERE AND ( QUERY_SRC_CD IS NULL OR UPPER(QUERY_SRC_CD) IN ('SOAP', 'RAWSQL') ) AND QUERY_TEXT NOT LIKE '{CALL%' ORDER BY 3 DESC;
Self Service?
Calculation
<saw:report ...> <saw:criteria xsi:type=“…” subjectArea=“"Jira Reporting""> <saw:columns> <saw:column …> <saw:columnFormula>
<sawx:expr xsi:type=“…”>”Dim Issue Status"."Issue Status”</…> <saw:column …> <saw:columnFormula> <sawx:expr xsi:type=“…”>”Fact Issue KPI"."# of Issues"</…> Metadata
https://www.youtube.com/watch?v=mQY2vslle_8 REST Endpoints
https://www.youtube.com/watch?v=mQY2vslle_8 REST Endpoints curl “https://<OAC>/datasetsvc/ public/api/v4/datasets” \ -u ‘<USER>:<PWD>'
{ "provider": "managed", "requiresImpersonation": false, "semicolonDelimited": false, "customDelimiter": false, "name":
"train", "namespace": "
[email protected]
", "business-model": "\"\"", "description": "Uploaded from train.csv.", "display-name": "train", "locale": "sys", "file-length": 460676, "type": "text", "data-last-modified": "2019-04-08T08:19:34.481+0000", "private-connection": false, "mime-type": "application/csv", "owner-guid": "
[email protected]
", "metadata-last-modified": "2019-04-08T08:22:20.928+0000", "bdp-profile": "{\"profile\":\"784c4626-ebd6-4a01-b5dc-1a3ccd0fee1a\"}", "is-temporary": false } REST Endpoints - CSV
{ …, "name": "OPEN_INCIDENTS", "namespace": "
[email protected]
", "business-model": "\"\"", "indexable": "BOTH",
"description": "External Data Set", "display-name": "OPEN_INCIDENTS", …, "data-last-modified": "2019-03-19T16:07:22.732+0000", "connection-namespace": "
[email protected]
", "private-connection": false, "connection-name": "LGI", "provider-type": "db", "provider-name": "oracle", "owner-guid": "
[email protected]
", … } REST Endpoints - DB
REST Endpoints - DB Details api/v4/datasets/{dataset-uri} {dataset-uri} = ‘<USERNAME>’.’<DATASET_NAME>’
REST Endpoints - DB Details
{ "id": "LGI", "leaf": false, "otype": "Schema", "name": "LGI", "children":
[ { "id": "LGI.OPEN_INCIDENTS", "leaf": false, "otype": "dbtable", "name": "OPEN_INCIDENTS", "allColumns": [ { "datatype": "number", "name": "OPEN_INCIDENTS", "is-supported": "TRUE", "otype": "Column", "leaf": true, "id": "LGI.OPEN_INCIDENTS.OPEN_INCIDENTS" }, { "datatype": "varchar(30)", "name": "ISO_YEAR_WEEK", "is-supported": "TRUE", "otype": "Column", "leaf": true, "id": "LGI.OPEN_INCIDENTS.ISO_YEAR_WEEK" }, REST Endpoints - DB Details
REST Endpoints - Dataflows api/v4/dataflows/{dataflow-uri} {dataflow-uri} = ‘<USERNAME>’.’<DATAFLOW_NAME>’
{ "datagen-name": "Clean Wine Dataflow", "namespace": "
[email protected]
", "definition": { "steps":
[ { "stepId": "InputDataset_0", "description": "winemag-data_first150k", "type": "InputDataset", "stepDisplayName": "winemag-data_first150k", "stepDescription": "", "datasetRef": "ds_0", "qualifiedTable": "XSA(ds_0).\"Columns\"", "datasetDescription": "Uploaded from winemag-data_first150k.xlsx.", "datasetType": "excel", "datasetDisplayName": "winemag-data_first150k", "inputType": "all", "parameters": [], "promptForInputSource": [] }, REST Endpoints - Dataflow Detail
{ "stepId": "AddColumns_0", "description": "Add Columns", "type": "AddColumns", "stepDisplayName": "",
"stepDescription": "", "columns": [ { "name": "TRAIN OR TEST", "expression": "case when RAND() < 0.8 then 'Train' else 'Test' end", "datatype": "varchar(4000)", "aggrule": "none", "srcexpression": "case when RAND() < 0.8 then 'Train' else 'Test' end", "transformationtype": "Calculation" }, { "name": "Length of Description", "expression": "CHAR_LENGTH(\"description\")", "datatype": "integer", "aggrule": "sum", "srcexpression": "CHAR_LENGTH(XSA('
[email protected]
'.'__CLIENT_FLOW_DATASET__'). \"Columns\".\"description\")", "transformationtype": "Calculation" } ] } REST Endpoints - Dataflow Detail
None
https://www.oracle.com/solutions/business-analytics/data-visualization/extensions.html
Data Governance Extension
Displays only objects visible to you!
BAR File
BAR File
DEMO
Oracle Data Catalog http://ritt.md/oow19-datacatalog Inventories of Data Assets
Oracle Data Catalog Inventories of Data Assets http://ritt.md/oow19-datacatalog
RM Metadata Explorer
RM Metadata Explorer Use Cases Data Lineage GDPR DataFlow ->
ODI Mapping Metadata Search Tool Data Capital
Self Service Analytics
Centralized Reporting
Measure
Tech Days 2020 Milan 29th Jan Rome 31st Jan
Francesco Tisiot BI Tech Lead Become an Equilibrista Find the
Right Balance in The Analytics Tech Ecosystem