This is an automated email from the ASF dual-hosted git repository. shaofengshi pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/master by this push: new 26b2646 KYLIN-4549 Show column cardinality in rowkeys area of advanced settings 26b2646 is described below commit 26b26468b067a940c8af9382ea80341b4c4b4617 Author: Julian Pan <lia...@ebay.com> AuthorDate: Fri Jun 26 11:56:23 2020 +0800 KYLIN-4549 Show column cardinality in rowkeys area of advanced settings --- webapp/app/js/controllers/cubeAdvanceSetting.js | 73 +++++++++++++--------- .../partials/cubeDesigner/advanced_settings.html | 9 +++ webapp/app/partials/tables/table_detail.html | 2 +- 3 files changed, 55 insertions(+), 29 deletions(-) diff --git a/webapp/app/js/controllers/cubeAdvanceSetting.js b/webapp/app/js/controllers/cubeAdvanceSetting.js index e298d37..91769cf 100755 --- a/webapp/app/js/controllers/cubeAdvanceSetting.js +++ b/webapp/app/js/controllers/cubeAdvanceSetting.js @@ -18,39 +18,54 @@ 'use strict'; -KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfig,MetaModel,cubesManager,CubeDescModel,SweetAlert,VdmUtil,modelsManager) { +KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfig,MetaModel,TableService,cubesManager,CubeDescModel,SweetAlert,VdmUtil,modelsManager) { $scope.cubesManager = cubesManager; var needLengthKeyList=cubeConfig.needSetLengthEncodingList; $scope.convertedRowkeys = []; $scope.dim_cap = $scope.cubeMetaFrame.aggregation_groups.length > 0 && $scope.cubeMetaFrame.aggregation_groups[0].select_rule.dim_cap ? $scope.cubeMetaFrame.aggregation_groups[0].select_rule.dim_cap : 0; - angular.forEach($scope.cubeMetaFrame.rowkey.rowkey_columns,function(item){ - item.encoding=$scope.removeVersion(item.encoding); - var _valueLength; - var tableName=VdmUtil.getNameSpaceTopName(item.column); - var databaseName=modelsManager.getDatabaseByColumnName(item.column); - var baseKey=item.encoding.replace(/:\d+/,''); - if(needLengthKeyList.indexOf(baseKey)>-1){ - var result=/:(\d+)/.exec(item.encoding); - _valueLength=result?result[1]:0; - } - var _encoding=baseKey; - var rowkeyObj = { - column:item.column, - encoding:_encoding+(item.encoding_version?"[v"+item.encoding_version+"]":"[v1]"), - encodingName:_encoding, - valueLength:_valueLength, - isShardBy:item.isShardBy, - encoding_version:item.encoding_version||1, - table:tableName, - database:databaseName - } - if(item.index){ - rowkeyObj.index=item.index; - } - $scope.convertedRowkeys.push(rowkeyObj); - - }) + + TableService.list({ext: true, project:$scope.projectModel.selectedProject}, function(tables) { + $scope.initRowKey(tables); + }, function (error) { + $scope.initRowKey([]); + }); + + $scope.initRowKey = function(tables) { + angular.forEach($scope.cubeMetaFrame.rowkey.rowkey_columns,function(item){ + item.encoding=$scope.removeVersion(item.encoding); + var _valueLength; + var tableName=VdmUtil.getNameSpaceTopName(item.column); + var databaseName=modelsManager.getDatabaseByColumnName(item.column); + var baseKey=item.encoding.replace(/:\d+/,''); + if(needLengthKeyList.indexOf(baseKey)>-1){ + var result=/:(\d+)/.exec(item.encoding); + _valueLength=result?result[1]:0; + }$scope.cubeMetaFrame + var _encoding=baseKey; + var rowkeyTable = _.find(tables, function(table) { + var modelDesc = modelsManager.getModel($scope.cubeMetaFrame.model_name); + var lookupTable = modelDesc ? _.find(modelDesc.lookups, function(lookup){ return lookup.alias === tableName; }) : undefined; + return ((modelDesc && modelDesc.fact_table === (table.database + '.' + table.name) && table.name === tableName) || (lookupTable && lookupTable.table === (table.name + table.database))); + }); + var cardinality = rowkeyTable ? rowkeyTable.cardinality[VdmUtil.removeNameSpace(item.column)] : undefined; + var rowkeyObj = { + column:item.column, + encoding:_encoding+(item.encoding_version?"[v"+item.encoding_version+"]":"[v1]"), + encodingName:_encoding, + valueLength:_valueLength, + isShardBy:item.isShardBy, + encoding_version:item.encoding_version||1, + table:tableName, + database:databaseName, + cardinality: cardinality || 'N/A' + } + if(item.index){ + rowkeyObj.index=item.index; + } + $scope.convertedRowkeys.push(rowkeyObj); + }) + } $scope.rule={ @@ -66,6 +81,7 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfi var isShardBy = item.isShardBy; var version=$scope.getTypeVersion(item.encoding); var encodingType=$scope.removeVersion(item.encoding); + var cardinality = item.cardinality; if(needLengthKeyList.indexOf(encodingType)!=-1){ encoding = encodingType+":"+item.valueLength; @@ -77,6 +93,7 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfi $scope.cubeMetaFrame.rowkey.rowkey_columns[index].encoding = encoding; $scope.cubeMetaFrame.rowkey.rowkey_columns[index].encoding_version =version; $scope.cubeMetaFrame.rowkey.rowkey_columns[index].isShardBy = isShardBy; + $scope.cubeMetaFrame.rowkey.rowkey_columns[index].cardinality = cardinality; if(checkShard == true){ $scope.checkShardByColumn(); } diff --git a/webapp/app/partials/cubeDesigner/advanced_settings.html b/webapp/app/partials/cubeDesigner/advanced_settings.html index 94c7d44..f41d42e 100755 --- a/webapp/app/partials/cubeDesigner/advanced_settings.html +++ b/webapp/app/partials/cubeDesigner/advanced_settings.html @@ -213,6 +213,7 @@ <th>Encoding</th> <th>Length</th> <th>Shard By</th> + <th>Cardinality</th> </tr> </thead> @@ -241,6 +242,10 @@ <td> <span>{{rowkey_column.isShardBy}}</span> </td> + + <td> + <span>{{rowkey_column.cardinality | number}}</span> + </td> </tr> </tbody> @@ -294,6 +299,10 @@ <small class="help-block red" ng-show="state.mode=='edit' && rule.shardColumnAvailable==false && rowkey_column.isShardBy == true">at most one 'shard by' column is allowed.</small> </td> </tr> + + <td> + <span>{{rowkey_column.cardinality | number}}</span> + </td> </tbody> </table> </div> diff --git a/webapp/app/partials/tables/table_detail.html b/webapp/app/partials/tables/table_detail.html index 533ef66..4d7a202 100644 --- a/webapp/app/partials/tables/table_detail.html +++ b/webapp/app/partials/tables/table_detail.html @@ -149,7 +149,7 @@ <td style="{{(tableModel.selectedSrcTable.selectedSrcColumn.id == column.id)? 'background-color:#EBF9FE':''}}"> <!--{{ tableModel.selectedSrcTable.cardinality[column.name]}}--> - {{column.cardinality}} + {{column.cardinality || 'N/A'}} </td> <td style="{{(tableModel.selectedSrcTable.selectedSrcColumn.id == column.id)? 'background-color:#EBF9FE':''}}">