README.rst 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. Cloudera Navigator Optimizer Api SDK
  2. ==============================================
  3. This package provides a API SDK for Cloudera Navigator Optimizer.
  4. Install the package
  5. ====================
  6. sudo pip install navoptapi-0.1.0.tar.gz
  7. Example Usage for the Api
  8. =========================
  9. * Import the module
  10. from navoptapi.api_lib import *
  11. * Create NavOpt object passing hostname, access key and private key:
  12. nav = ApiLib("navopt", "121.0.0.1", "e0819f3a-1e6f-4904-be69-5b704b299bbb", "-----BEGIN PRIVATE KEY-----\n..............\n-----END PRIVATE KEY-----")
  13. * Get Top Tables for a workload:
  14. resp = nav.call_api("getTopTables", {"tenant" : "d6d54b73-2bab-e413-5376-a805f5d4ae53"})
  15. print json.dumps(resp.json(), indent=2)
  16. * Get Top Databases for a workload:
  17. resp = nav.call_api("getTopDataBases", {"tenant" : "d6d54b73-2bab-e413-5376-a805f5d4ae53"})
  18. print json.dumps(resp.json(), indent=2)
  19. * Get Top Queries for a workload:
  20. resp = nav.call_api("getTopQueries", {"tenant" : "d6d54b73-2bab-e413-5376-a805f5d4ae53"})
  21. print json.dumps(resp.json(), indent=2)
  22. * Get Top Columns for a workload:
  23. resp = nav.call_api("getTopColumns", {"tenant" : "d6d54b73-2bab-e413-5376-a805f5d4ae53", "dbTableList":["default.sample_07"]})
  24. print json.dumps(resp.json(), indent=2)
  25. * Get Top Filters for a workload:
  26. resp = nav.call_api("getTopFilters", {"tenant" : "d6d54b73-2bab-e413-5376-a805f5d4ae53", "dbTableList":["default.sample_07"]})
  27. print json.dumps(resp.json(), indent=2)
  28. * Get Top Aggregates for a workload:
  29. resp = nav.call_api("getTopAggs", {"tenant" : "d6d54b73-2bab-e413-5376-a805f5d4ae53", "dbTableList":["default.sample_07"]})
  30. print json.dumps(resp.json(), indent=2)
  31. * Get Top Joins for a workload:
  32. resp = nav.call_api("getTopJoins", {"tenant" : "d6d54b73-2bab-e413-5376-a805f5d4ae53", "dbTableList":["default.sample_07"]})
  33. print json.dumps(resp.json(), indent=2)
  34. * Get Query Compatibility:
  35. resp = nav.call_api("getQueryCompatible", {"tenant" : "d6d54b73-2bab-e413-5376-a805f5d4ae53", "query":"select supplier.s_acctbal, supplier.s_name, nation.n_name, part.p_partkey, part.p_mfgr, supplier.s_address, supplier.s_phone, supplier.s_comment from part, supplier, partsupp, nation, region where part.p_partkey = partsupp.ps_partkey and supplier.s_suppkey = partsupp.ps_suppkey and part.p_size = 15 and part.p_type like '%BRASS' and supplier.s_nationkey = nation.n_nationkey and nation.n_regionkey = region.r_regionkey and region.r_name = 'EUROPE' and partsupp.ps_supplycost = ( select min(partsupp.ps_supplycost) from partsupp, supplier, nation, region where part.p_partkey = partsupp.ps_partkey and supplier.s_suppkey = partsupp.ps_suppkey and supplier.s_nationkey = nation.n_nationkey and nation.n_regionkey = region.r_regionkey and region.r_name = 'EUROPE' ) order by supplier.s_acctbal desc, nation.n_name, supplier.s_name, part.p_partkey", "sourcePlatform":"teradata", "targetPlatform":"hive"})
  36. print json.dumps(resp.json(), indent=2)
  37. * Get Query Risk Analysis:
  38. resp = nav.call_api("getQueryRisk", {"tenant" : "d6d54b73-2bab-e413-5376-a805f5d4ae53", "query": "select * from web_logs limit 10"})
  39. print json.dumps(resp.json(), indent=2)