$30 off During Our Annual Pro Sale. View Details »

Become an Equilibrista: Find the right balance ...

Become an Equilibrista: Find the right balance in the Analytics Tech Ecosystem

How to successfully mix Governed and Self Service Analytics

FTisiot

June 24, 2019
Tweet

More Decks by FTisiot

Other Decks in Technology

Transcript

  1. Francesco Tisiot BI Tech Lead Become an Equilibrista Find the

    Right Balance in The Analytics Tech Ecosystem
  2. Specialised in data visualisation, predictive analytics, enterprise reporting and data

    engineering. Enabling the business, the consumers, the data providers and IT to work towards a common goal, delivering innovative and cost-effective solutions based on our core values of thought leadership, hard work and honesty. We work across multiple verticals on projects that range from mature, large scale implementations to proofs of concept and can provide skills in development, architecture, delivery, training and support. www.rittmanmead.com [email protected] @rittmanmead
  3. 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
  4. Key Factors Centralised Self Service Complexity Low High Interest Narrow/Unique

    Wide/Repeated Security Easy Complex Data Volumes Small Big
  5. 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;
  6. <saw:report ...> <saw:criteria xsi:type=“…” subjectArea=“&quot;Jira Reporting&quot;"> <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
  7. { "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
  8. { …, "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
  9. { "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
  10. { "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
  11. { "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
  12. RM Metadata Explorer Use Cases Data Lineage GDPR DataFlow ->

    ODI Mapping Metadata Search Tool Data Capital
  13. Francesco Tisiot BI Tech Lead Become an Equilibrista Find the

    Right Balance in The Analytics Tech Ecosystem