Pārlūkot izejas kodu

HUE-3450 [metadata] Add popular_values API

Romain Rigaux 9 gadi atpakaļ
vecāks
revīzija
18fb397

+ 193 - 1
desktop/libs/metadata/src/metadata/optimizer_api.py

@@ -73,7 +73,7 @@ def top_tables(request):
     """
     Get back:
     # u'details': [{u'columnCount': 28, u'name': u'date_dim', u'patternCount': 136, u'workloadPercent': 89, u'total': 92, u'type': u'Dimension', u'eid': u'19'},
-    """    
+    """
     tables = [{
         'eid': table['eid'],
         'name': table['name'],
@@ -149,6 +149,198 @@ def query_complexity(request):
   return JsonResponse(response)
 
 
+# Mocked
+@require_POST
+@error_handler
+def popular_values(request):
+  response = {'status': -1}
+
+  table_name = request.POST.get('tableName')
+  column_name = request.POST.get('columnName')
+
+  if column_name:
+    values = [
+        {
+          "values": [
+            "1",
+            "(6,0)"
+          ],
+          "columnName": "d_dow",
+          "tableName": "date_dim"
+        }
+    ]
+  else:
+    values = [
+        {
+          "values": [
+            "('2001q1','2001q2','2001q3')",
+            "'2001q1'"
+          ],
+          "columnName": "d_quarter_name",
+          "tableName": "date_dim"
+        },
+        {
+          "values": [
+            "1",
+            "2",
+            "4"
+          ],
+          "columnName": "d_qoy",
+          "tableName": "date_dim"
+        },
+        {
+          "values": [
+            "Subquery"
+          ],
+          "columnName": "d_week_seq",
+          "tableName": "date_dim"
+        },
+        {
+          "values": [
+            "(cast('1998-08-14' as date) + interval '30' day)",
+            "(cast ('1998-03-08' as date) + interval '30' day)",
+            "d1.d_date + 5",
+            "cast('1998-08-14' as date)",
+            "cast('1999-04-26' as date)",
+            "'2002-4-01'",
+            "(cast('2000-02-02' as date) + interval '90' day)",
+            "(cast('2002-4-01' as date) + interval '60' day)",
+            "(cast('2002-01-18' as date) + 60 + interval '60' day)",
+            "('1999-04-17','1999-10-04','1999-11-10')",
+            "(cast('1999-04-26' as date) + 30 + interval '30' day)",
+            "(cast('1999-06-03' as date) + interval '30' day)",
+            "cast('1998-01-06' as date)",
+            "(cast('2000-2-01' as date) + interval '60' day)",
+            "(cast('2002-04-01' as date) + interval '30' day)",
+            "( cast('2000-03-22' as date ) + interval '90' day )",
+            "cast('2001-08-21' as date)",
+            "(cast ('1998-03-08' as date) - interval '30' day)",
+            "'2000-03-22'",
+            "(cast('2001-08-21' as date) + interval '14' day)",
+            "( cast('1999-08-25' as date) + interval '30' day )",
+            "Subquery",
+            "'2000-3-01'",
+            "cast('2002-01-18' as date)",
+            "(cast ('2001-03-14' as date) - interval '30' day)",
+            "'2000-02-02'",
+            "cast('2002-04-01' as date)",
+            "'2002-03-09'",
+            "(cast('2000-3-01' as date) + interval '60' day)",
+            "cast('1999-06-03' as date)",
+            "cast('1999-08-25' as date)",
+            "(cast ('2001-03-14' as date) + interval '30' day)",
+            "'2000-2-01'",
+            "(cast('1998-01-06' as date) + interval '60' day)"
+          ],
+          "columnName": "d_date",
+          "tableName": "date_dim"
+        },
+        {
+          "values": [
+            "1223",
+            "1200",
+            "1202",
+            "1214+11",
+            "(select distinct date_dim.d_month_seq+1 from date_dim where date_dim.d_year = 2001 and date_dim.d_moy = 5)",
+            "1181+11",
+            "1199",
+            "1191",
+            "(1206,1206+1,1206+2,1206+3,1206+4,1206+5,1206+6,1206+7,1206+8,1206+9,1206+10,1206+11)",
+            "1211 + 11",
+            "1199 + 11",
+            "1212",
+            "(select distinct date_dim.d_month_seq+3 from date_dim where date_dim.d_year = 2001 and date_dim.d_moy = 5)",
+            "1211",
+            "1214",
+            "Subquery",
+            "(1195,1195+1,1195+2,1195+3,1195+4,1195+5,1195+6,1195+7,1195+8,1195+9,1195+10,1195+11)",
+            "1200+11",
+            "1212 + 11",
+            "1223+11",
+            "1183 + 11",
+            "1183",
+            "1181",
+            "1191 + 11",
+            "1202 + 11"
+          ],
+          "columnName": "d_month_seq",
+          "tableName": "date_dim"
+        },
+        {
+          "values": [
+            "11",
+            "4 + 3",
+            "12",
+            "3+2",
+            "2+3",
+            "1",
+            "3",
+            "2",
+            "5",
+            "4",
+            "6",
+            "8",
+            "10"
+          ],
+          "columnName": "d_moy",
+          "tableName": "date_dim"
+        },
+        {
+          "values": [
+            "25",
+            "16",
+            "28",
+            "1",
+            "3",
+            "2"
+          ],
+          "columnName": "d_dom",
+          "tableName": "date_dim"
+        },
+        {
+          "values": [
+            "(1998,1998+1)",
+            "2000 + 1",
+            "2000 + 2",
+            "(2000,2000+1,2000+2)",
+            "(1999,1999+1,1999+2)",
+            "2000-1",
+            "2001+1",
+            "1999 + 2",
+            "2000+1",
+            "2000+2",
+            "1999+1",
+            "(2002)",
+            "( 1999, 1999 + 1, 1999 + 2, 1999 + 3 )",
+            "1999-1",
+            "( 1998, 1998 + 1, 1998 + 2 )",
+            "1999",
+            "1998",
+            "(1998,1998+1,1998+2)",
+            "2002",
+            "2000",
+            "2001",
+            "2004"
+          ],
+          "columnName": "d_year",
+          "tableName": "date_dim"
+        },
+        {
+          "values": [
+            "1",
+            "(6,0)"
+          ],
+          "columnName": "d_dow",
+          "tableName": "date_dim"
+        }
+      ]
+
+  response['values'] = values
+  response['status'] = 0
+
+  return JsonResponse(response)
+
+
 @require_POST
 @error_handler
 def upload_history(request):

+ 1 - 0
desktop/libs/metadata/src/metadata/urls.py

@@ -38,4 +38,5 @@ urlpatterns += patterns('metadata.optimizer_api',
   url(r'^api/optimizer_api/query_compatibility/?$', 'query_compatibility', name='query_compatibility'),
   url(r'^api/optimizer_api/upload_history/?$', 'upload_history', name='upload_history'),
   url(r'^api/optimizer_api/query_complexity/?$', 'query_complexity', name='query_complexity'),
+  url(r'^api/optimizer_api/popular_values/?$', 'popular_values', name='popular_values'),
 )