فهرست منبع

[metadata] Add connectors to suggestion API

Romain Rigaux 4 سال پیش
والد
کامیت
7543a023d5

+ 3 - 3
desktop/libs/metadata/src/metadata/optimizer/dummy_client.py

@@ -46,7 +46,7 @@ class DummyClient(Api):
     pass
 
 
-  def top_tables(self, workfloadId=None, database_name='default', page_size=1000, startingToken=None):
+  def top_tables(self, workfloadId=None, database_name='default', page_size=1000, startingToken=None, connector=None):
     data = {
       'results': [{
           "database": "default",
@@ -114,7 +114,7 @@ class DummyClient(Api):
     return results
 
 
-  def top_columns(self, db_tables=None, page_size=100, startingToken=None):
+  def top_columns(self, db_tables=None, page_size=100, startingToken=None, connector=None):
     results = {
       'selectColumns': [{
         "dbName": 'default',
@@ -133,7 +133,7 @@ class DummyClient(Api):
     return results
 
 
-  def top_joins(self, db_tables=None, page_size=100, startingToken=None):
+  def top_joins(self, db_tables=None, page_size=100, startingToken=None, connector=None):
     results = {'results': []}
 
     return results

+ 6 - 3
desktop/libs/metadata/src/metadata/optimizer/optimizer_client.py

@@ -191,10 +191,11 @@ class OptimizerClient(object):
 
   # Sentry permissions work bottom to top.
   # @check_privileges
-  def top_tables(self, workfloadId=None, database_name='default', page_size=1000, startingToken=None):
+  def top_tables(self, workfloadId=None, database_name='default', page_size=1000, startingToken=None, connector=None):
     return self._call(
       'getTopTables', {
         'tenant' : self._tenant_id,
+        'connector': connector,
         'dbName': database_name.lower(),
         'pageSize': page_size,
         'startingToken': startingToken
@@ -297,9 +298,10 @@ class OptimizerClient(object):
 
 
   @check_privileges
-  def top_columns(self, db_tables=None, page_size=100, startingToken=None):
+  def top_columns(self, db_tables=None, page_size=100, startingToken=None, connector=None):
     args = {
       'tenant' : self._tenant_id,
+      'connector' : connector,
       'pageSize': page_size,
       'startingToken': startingToken
     }
@@ -315,9 +317,10 @@ class OptimizerClient(object):
 
 
   @check_privileges
-  def top_joins(self, db_tables=None, page_size=100, startingToken=None):
+  def top_joins(self, db_tables=None, page_size=100, startingToken=None, connector=None):
     args = {
       'tenant' : self._tenant_id,
+      'connector': connector,
       'pageSize': page_size,
       'startingToken': startingToken
     }

+ 6 - 3
desktop/libs/metadata/src/metadata/optimizer_api.py

@@ -105,11 +105,12 @@ def top_tables(request):
 
   interface = request.POST.get('interface', OPTIMIZER.INTERFACE.get())
   database = request.POST.get('database', 'default')
+  connector = json.loads(request.POST.get('connector', '{}'))
   limit = request.POST.get('len', 1000)
 
   api = get_api(request.user, interface)
 
-  data = api.top_tables(database_name=database, page_size=limit)
+  data = api.top_tables(database_name=database, page_size=limit, connector=connector)
 
   if OPTIMIZER.APPLY_SENTRY_PERMISSIONS.get():
     checker = get_checker(user=self.user)
@@ -263,11 +264,12 @@ def top_joins(request):
   response = {'status': -1}
 
   interface = request.POST.get('interface', OPTIMIZER.INTERFACE.get())
+  connector = json.loads(request.POST.get('connector', '{}'))
   db_tables = json.loads(request.POST.get('dbTables', '[]'))
 
   api = get_api(request.user, interface)
 
-  data = api.top_joins(db_tables=db_tables)
+  data = api.top_joins(db_tables=db_tables, connector=connector)
 
   if data:
     response['status'] = 0
@@ -325,11 +327,12 @@ def top_columns(request):
   response = {'status': -1}
 
   interface = request.POST.get('interface', OPTIMIZER.INTERFACE.get())
+  connector = json.loads(request.POST.get('connector', '{}'))
   db_tables = json.loads(request.POST.get('dbTables', '[]'))
 
   api = get_api(request.user, interface)
 
-  data = api.top_columns(db_tables=db_tables)
+  data = api.top_columns(db_tables=db_tables, connector=connector)
 
   if data:
     response['status'] = 0