Explorar o código

HUE-3450 [metastore] Display tables joins

Romain Rigaux %!s(int64=9) %!d(string=hai) anos
pai
achega
6ae3a7f
Modificáronse 1 ficheiros con 29 adicións e 8 borrados
  1. 29 8
      apps/metastore/src/metastore/templates/metastore.mako

+ 29 - 8
apps/metastore/src/metastore/templates/metastore.mako

@@ -753,7 +753,7 @@ ${ assist.assistPanel() }
     <!-- ko if: $root.optimizerEnabled -->
       <li><a href="#permissions" data-toggle="tab" data-bind="click: function(){ $root.currentTab('table-permissions'); }">${_('Permissions')}</a></li>
       <li><a href="#queries" data-toggle="tab" data-bind="click: function(){ $root.currentTab('table-queries'); }">${_('Queries')}</a></li>
-      <li><a href="#analysis" data-toggle="tab" data-bind="click: function(){ $root.currentTab('table-analysis'); }">${_('Analysis')}</a></li>
+      <li><a href="#joins" data-toggle="tab" data-bind="click: function(){ $root.currentTab('table-joins'); }">${_('Joins')}</a></li>
       <li><a href="#relationships" data-toggle="tab" data-bind="click: function(){ $root.currentTab('table-relationships'); }">${_('Relationships')}</a></li>
     <!-- /ko -->
     <li><a href="#details" data-toggle="tab" data-bind="click: function(){ $root.currentTab('table-details'); }">${ _('Details') }</a></li>
@@ -965,22 +965,43 @@ ${ assist.assistPanel() }
       <!-- /ko -->
     </div>
 
-    <div class="tab-pane" id="analysis">
+    <div class="tab-pane" id="joins">
+      <!-- ko if: $root.optimizerEnabled() && $root.database().table().optimizerDetails() -->
+      <!-- ko with: $root.database().table().optimizerDetails().table_donut -->
+        <table data-bind="visible: joinedtables().length > 0" class="table table-condensed">
+          <thead>
+          <tr>
+            <th width="10%">${ _('Id') }</th>
+            <th width="10%">${ _('Join Percentage') }</th>
+            <th width="30%">${ _('Table Name') }</th>
+            <th>${ _('Join Column') }</th>
+            <th width="10%">${ _('Join counts') }</th>
+          </tr>
+          </thead>
+          <tbody data-bind="hueach: {data: joinedtables(), itemHeight: 29, scrollable: '.right-panel', scrollableOffset: 200}">
+          <tr>
+            <td class="pointer" data-bind="text: tableEid, click: function(){ window.open($root.optimizerUrl() + '#/table/' + tableEid(), '_blank'); }"></td>
+            <td data-bind="text: joinpercent"></td>
+            <td><a data-bind="text: tableName, attr: { href: '/metastore/table/' + $root.database().name + '/' + tableName() }"</a></td>
+            <td class="pointer"><code data-bind="text: joinColumns, click: scrollToColumn"></code></td>
+            <td data-bind="text: joincount"></td>
+          </tr>
+          </tbody>
+        </table>
+        <!-- /ko -->
+        <!-- /ko -->
+    </div>
+
+    <div class="tab-pane" id="relationships">
       <!-- ko if: $root.database() && $root.database().table() -->
         <span data-bind="text: $root.database().table().optimizerDetails()"></span>
         
         ## top stats above tags
         
-        ## joined tables --> relationsips
-        
         ## col stats, nb# joins on ....
       <!-- /ko -->
     </div>
 
-    <div class="tab-pane" id="relationships">
-      <div class="empty-message">${ _('Currently not available.') }</div>
-    </div>
-
     <div class="tab-pane" id="details">
       <!-- ko if: $root.currentTab() == 'table-details' -->
       <!-- ko template: 'metastore-details-tab' --><!-- /ko -->