svn commit: r1910278 - in /kylin/site: 5.0/search-index-default.json 5.0/search-index-docs-default-current.json feed.xml
Author: lidong Date: Wed Jun 7 14:13:41 2023 New Revision: 1910278 URL: http://svn.apache.org/viewvc?rev=1910278=rev Log: Update home page Modified: kylin/site/5.0/search-index-default.json kylin/site/5.0/search-index-docs-default-current.json kylin/site/feed.xml Modified: kylin/site/5.0/search-index-default.json URL: http://svn.apache.org/viewvc/kylin/site/5.0/search-index-default.json?rev=1910278=1910277=1910278=diff == --- kylin/site/5.0/search-index-default.json (original) +++ kylin/site/5.0/search-index-default.json Wed Jun 7 14:13:41 2023 @@ -1 +1 @@ -{"documents":[{"id":1,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"Introduction of Metadata(CN)","sectionRoute":"/5.0/blog/introduction_of_metadata_cn","type":"blog"},{"id":2,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"Introduction of Metadata","sectionRoute":"/5.0/blog/introduction_of_metadata_cn","type":"blog"},{"id":3,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"Overview","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#overview","type":"blog"},{"id":4,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"Table Description","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#table-description","type":"blog"},{"id":5,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"Model Description","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#model-description","type":"blog"},{"id":6,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"Significant Change","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#signific ant-change","type":"blog"},{"id":7,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"Broken Model","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#broken-model","type":"blog"},{"id":8,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"IndexPlan","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#indexplan","type":"blog"},{"id":9,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"Index & Layout","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#index--layout","type":"blog"},{"id":10,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"RuleBasedIndex","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#rulebasedindex","type":"blog"},{"id":11,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"Indexes","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#indexes","type":"blog"},{"id":12,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"Segment","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#segment","type":"blog"},{" id":13,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"Dataflow","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#dataflow","type":"blog"},{"id":14,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"DataflowDetails","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#dataflowdetails","type":"blog"},{"id":15,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"Task & Job","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#task--job","type":"blog"},{"id":16,"pageTitle":"Introduction of Metadata(CN)","sectionTitle":"Brief Summary","sectionRoute":"/5.0/blog/introduction_of_metadata_cn#brief-summary","type":"blog"},{"id":17,"pageTitle":"Introduction of Metastore(CN)","sectionTitle":"Introduction of Metastore(CN)","sectionRoute":"/5.0/blog/introduction_of_metastore_cn","type":"blog"},{"id":18,"pageTitle":"Introduction of Metastore(CN)","sectionTitle":"Target Audience","sectionRoute":"/5.0/blog/introduction_of_metastore_cn#target-audience","type":"blog"}, {"id":19,"pageTitle":"Introduction of Metastore(CN)","sectionTitle":"Terminology","sectionRoute":"/5.0/blog/introduction_of_metastore_cn#terminology","type":"blog"},{"id":20,"pageTitle":"Introduction of Metastore(CN)","sectionTitle":"Transaction of metadata CRUD","sectionRoute":"/5.0/blog/introduction_of_metastore_cn#transaction-of-metadata-crud","type":"blog"},{"id":21,"pageTitle":"Introduction of Metastore(CN)","sectionTitle":"Epoch","sectionRoute":"/5.0/blog/introduction_of_metastore_cn#epoch","type":"blog"},{"id":22,"pageTitle":"Introduction of Metastore(CN)","sectionTitle":"How Kylin load ResourceStore when started","sectionRoute":"/5.0/blog/introduction_of_metastore_cn#how-kylin-load-resourcestore-when-started","type":"blog"},{"id":23,"pageTitle":"Introduction of Metastore(CN)","sectionTitle":"Metadata Sync","sectionRoute":"/5.0/blog/introduction_of_metastore_cn#metadata-sync","type":"blog"},{"id":24,"pageTitle":"Introduction of Metastore(CN)","sectionTitle":"Diagram","section Route":"/5.0/blog/introduction_of_metastore_cn#diagram","type":"blog"},{"id":25,"pageTitle":"Roadmap of Kylin 5.0(CN)","sectionTitle":"Roadmap of Kylin 5.0(CN)","sectionRoute":"/5.0/blog/roadmap_of_kylin_50_cn","type":"blog"},{"id":26,"pageTitle":"Roadmap of Kylin
[kylin] branch main updated: Fix typos (#2120)
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/kylin.git The following commit(s) were added to refs/heads/main by this push: new 0e0d8a125e Fix typos (#2120) 0e0d8a125e is described below commit 0e0d8a125ea81f735e66e38f32ef722622d77dc0 Author: wangda <38549158+da...@users.noreply.github.com> AuthorDate: Wed Jun 7 15:03:41 2023 +0800 Fix typos (#2120) * 修正单词拼写 Signed-off-by: zhangwd3 * Correcting spelling mistakes Signed-off-by: zhangwd3 - Signed-off-by: zhangwd3 --- build-engine/src/main/java/org/apache/kylin/engine/mr/IMROutput.java | 2 +- .../java/org/apache/kylin/engine/mr/common/AbstractHadoopJob.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build-engine/src/main/java/org/apache/kylin/engine/mr/IMROutput.java b/build-engine/src/main/java/org/apache/kylin/engine/mr/IMROutput.java index beebb4e22f..5e63b0a78c 100644 --- a/build-engine/src/main/java/org/apache/kylin/engine/mr/IMROutput.java +++ b/build-engine/src/main/java/org/apache/kylin/engine/mr/IMROutput.java @@ -27,7 +27,7 @@ public interface IMROutput { public IMRBatchCubingOutputSide getBatchCubingOutputSide(CubeSegment seg); /** - * Participate the batch cubing flow as the output side. Responsible for savg + * Participate the batch cubing flow as the output side. Responsible for save * the cuboid output to storage (Phase 3). * * - Phase 1: Create Flat Table diff --git a/build-engine/src/main/java/org/apache/kylin/engine/mr/common/AbstractHadoopJob.java b/build-engine/src/main/java/org/apache/kylin/engine/mr/common/AbstractHadoopJob.java index e2f7e0b5f6..5ac82aee71 100644 --- a/build-engine/src/main/java/org/apache/kylin/engine/mr/common/AbstractHadoopJob.java +++ b/build-engine/src/main/java/org/apache/kylin/engine/mr/common/AbstractHadoopJob.java @@ -90,7 +90,7 @@ public abstract class AbstractHadoopJob extends Configured implements Tool { .isRequired(true).withDescription("Job name. For example, Kylin_Cuboid_Builder-clsfd_v2_Step_22-D)") .create(BatchConstants.ARG_JOB_NAME); protected static final Option OPTION_CUBE_NAME = OptionBuilder.withArgName(BatchConstants.ARG_CUBE_NAME).hasArg() -.isRequired(true).withDescription("Cube name. For exmaple, flat_item_cube") +.isRequired(true).withDescription("Cube name. For example, flat_item_cube") .create(BatchConstants.ARG_CUBE_NAME); protected static final Option OPTION_CUBING_JOB_ID = OptionBuilder.withArgName(BatchConstants.ARG_CUBING_JOB_ID) .hasArg().isRequired(false).withDescription("ID of cubing job executable") @@ -128,7 +128,7 @@ public abstract class AbstractHadoopJob extends Configured implements Tool { protected static final Option OPTION_NEED_UPDATE_BASE_CUBOID_SHARD = OptionBuilder .withArgName(BatchConstants.ARG_UPDATE_SHARD).hasArg().isRequired(false) .withDescription("If need to update base cuboid shard").create(BatchConstants.ARG_UPDATE_SHARD); -protected static final Option OPTION_TABLE_NAME = OptionBuilder.withArgName(BatchConstants.ARG_TABLE_NAME).hasArg().isRequired(true).withDescription("Table name. For exmaple, default.table1").create(BatchConstants.ARG_TABLE_NAME); +protected static final Option OPTION_TABLE_NAME = OptionBuilder.withArgName(BatchConstants.ARG_TABLE_NAME).hasArg().isRequired(true).withDescription("Table name. For example, default.table1").create(BatchConstants.ARG_TABLE_NAME); protected static final Option OPTION_LOOKUP_SNAPSHOT_ID = OptionBuilder.withArgName(BatchConstants.ARG_LOOKUP_SNAPSHOT_ID).hasArg() .isRequired(true).withDescription("Lookup table snapshotID") .create(BatchConstants.ARG_LOOKUP_SNAPSHOT_ID);
[kylin] 12/12: KYLIN-5554 change tips when import same name model
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git commit 10e4e9ec3a889948e51e80891793a86730ede0be Author: Qian Xia AuthorDate: Tue Jun 6 17:28:39 2023 +0800 KYLIN-5554 change tips when import same name model --- .../src/components/common/ModelsImportModal/ModelsImportModal.vue | 4 ++-- kystudio/src/components/studio/DDL/ddl.vue| 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kystudio/src/components/common/ModelsImportModal/ModelsImportModal.vue b/kystudio/src/components/common/ModelsImportModal/ModelsImportModal.vue index acbcf06a19..326b215bb2 100644 --- a/kystudio/src/components/common/ModelsImportModal/ModelsImportModal.vue +++ b/kystudio/src/components/common/ModelsImportModal/ModelsImportModal.vue @@ -63,7 +63,7 @@ - {{$t(activeModalObj.has_same_name ? `${getCurrentModelDetails().title}SameName` : `${getCurrentModelDetails().title}DiffName`)}}{{$t('detailBtn')}} + {{$t(activeModalObj.has_same_name ? `${getCurrentModelDetails().title}SameName` : `${getCurrentModelDetails().title}DiffName`)}}{{$t('detailBtn')}} {{$t(activeModalObj.has_same_name ? `${getCurrentModelDetails().details}SameName` : `${getCurrentModelDetails().details}DiffName`)}} @@ -75,7 +75,7 @@ * {{$t(item)}} - {{$t(activeModalObj.has_same_name ? `${getCurrentModelDetails().msg}SameName` : `${getCurrentModelDetails().msg}DiffName`)}} + {{$t(activeModalObj.has_same_name && !activeModalObj.has_same_name_broken ? `${getCurrentModelDetails().msg}SameName` : `${getCurrentModelDetails().msg}DiffName`)}} diff --git a/kystudio/src/components/studio/DDL/ddl.vue b/kystudio/src/components/studio/DDL/ddl.vue index 4042ae762a..13a11c2381 100644 --- a/kystudio/src/components/studio/DDL/ddl.vue +++ b/kystudio/src/components/studio/DDL/ddl.vue @@ -107,7 +107,7 @@ }) export default class DDL extends Vue { content = '' -activeType = '' +activeType = 'result' rules = [] ddlError = false errorMsg = ''
[kylin] 08/12: KYLIN-5550 change text in import model
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git commit c3355e6e8009e3a7cab3939895f3259e0a168f5a Author: Qian Xia AuthorDate: Tue Jun 6 15:43:35 2023 +0800 KYLIN-5550 change text in import model --- kystudio/src/components/common/ModelsImportModal/locales.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kystudio/src/components/common/ModelsImportModal/locales.js b/kystudio/src/components/common/ModelsImportModal/locales.js index 5ddbeb2673..e17b9e0457 100644 --- a/kystudio/src/components/common/ModelsImportModal/locales.js +++ b/kystudio/src/components/common/ModelsImportModal/locales.js @@ -31,7 +31,7 @@ export default { viewDetails: ' View import rules', importTips1: 'The system recommends replacing models with the same name in the project if the following are all consistent: fact table, dimension table, join conditions, partition column and format, data loading method, and data filter condition.', importTips2: 'The system recommends adding a new model if any of the above items is inconsistent, or there is no model with the same name exists in the project.', -importTips3: 'The model can\'t be imported if any of the following is met: can\'t find tables or columns used in the model in the current project; the column\'s data type is inconsistent; the current project has a computed column with same name while the expression is different, or with same expression while using another name.', +importTips3: 'The model can\'t be imported if any of the following is met: can\'t find tables or columns used in the model in the current system; the column\'s data type is inconsistent; the current project has a computed column with same name while the expression is different, or with same expression while using another name.', modelName: 'Model Name', actions: 'Actions', addNew: 'Add New', @@ -80,7 +80,7 @@ export default { confirmNoImportBtn: 'Not Import', confirmImportBtn: 'Import', sameCCNameTips: 'A computed column with same name has been found in model in the curent project, while using a different expression. Please rename it. ', -sameCCExpressionTips: 'A computed column with same expression has been found in model in the current project, while the name is "{sameCCName}". Please rename it.', +sameCCExpressionTips: 'A computed column with same expression has been found in model in the current system, while the name is "{sameCCName}". Please rename it.', validateErrorTips: 'The file parsing failed. Please check if the model metadata package is complete.', subPartition: 'Subpartition Columns: ', subPartitionValues: 'Subpartition Values: ', @@ -104,7 +104,7 @@ export default { detailBtn: ' Details', notFoundTablesOrColumnsTip: 'This table or column has not been loaded into the current project. This causes the model can\'t imported.', changeColumnsDataTypeTip: 'This data type of this column is inconsistent. This causes the model can\'t imported.', -noFoundItems: 'Can\'t find {items} used in the model in the current project', +noFoundItems: 'Can\'t find {items} used in the model in the current system', columnsDataTypeConflict: 'The columns\'s data types is inconsistent. ', cannotOverwriteTips: 'This causes the model can\'t replace the existing one in the project.', or: ' or ',
[kylin] 09/12: KYLIN-5551 get query history within one day
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git commit 40165755ba42868790fde247a9e575160cd0cd84 Author: Qian Xia AuthorDate: Tue Jun 6 16:10:30 2023 +0800 KYLIN-5551 get query history within one day --- kystudio/src/components/query/query_history.vue | 6 +- kystudio/src/components/query/query_history_table.vue | 6 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/kystudio/src/components/query/query_history.vue b/kystudio/src/components/query/query_history.vue index 1ae5b47fb8..3143c248fe 100644 --- a/kystudio/src/components/query/query_history.vue +++ b/kystudio/src/components/query/query_history.vue @@ -87,8 +87,12 @@ import { pageRefTags, apiUrl, bigPageCount } from 'config' vm.filterDirectData.startTimeFrom = tm - 1000 * 60 * 60 * 24 * 7 vm.filterDirectData.startTimeTo = tm return + } else { +let tm = new Date(new Date().toDateString()).getTime() +vm.filterDirectData.startTimeFrom = tm +vm.filterDirectData.startTimeTo = tm + 1000 * 60 * 60 * 24 * 1 } - vm.currentSelectedProject && vm.loadHistoryList() + // vm.currentSelectedProject && vm.loadHistoryList() }) }, methods: { diff --git a/kystudio/src/components/query/query_history_table.vue b/kystudio/src/components/query/query_history_table.vue index d9c8ec41c3..2e9e438282 100644 --- a/kystudio/src/components/query/query_history_table.vue +++ b/kystudio/src/components/query/query_history_table.vue @@ -935,7 +935,11 @@ export default class QueryHistoryTable extends Vue { const index = this.filterTags.map(item => item.key).indexOf('server') this.filterTags.splice(index, 1) } else { - const index = this.filterData[tag.key].indexOf(tag.label) + let delLabel = tag.label + if (tag.key === 'realization' && tag.label === 'allModels') { +delLabel = 'modelName' + } + const index = this.filterData[tag.key].indexOf(delLabel) index > -1 && this.filterData[tag.key].splice(index, 1) this.filterTags = this.filterTags.filter(item => item.key !== tag.key || item.key === tag.key && tag.label !== item.label) }
[kylin] 04/12: KYLIN-5543 support ddl
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git commit 2878bb8279c6d5c9e7614ff461ddc6f67c3386c2 Author: Qian Xia AuthorDate: Mon Jun 5 17:54:59 2023 +0800 KYLIN-5543 support ddl --- .../src/components/common/DataSourceBar/index.vue | 48 ++- .../src/components/common/DataSourceBar/locales.js | 5 +- .../components/layout/layout_left_right_top.vue| 17 +- kystudio/src/components/studio/DDL/ddl.vue | 377 + .../src/components/studio/StudioSource/index.vue | 1 + kystudio/src/config/index.js | 3 +- kystudio/src/config/spec.js| 14 +- kystudio/src/locale/en.js | 2 + kystudio/src/router/index.js | 4 + kystudio/src/service/datasource.js | 6 + kystudio/src/store/datasource.js | 8 + kystudio/src/store/system.js | 4 +- kystudio/src/store/types.js| 3 + 13 files changed, 466 insertions(+), 26 deletions(-) diff --git a/kystudio/src/components/common/DataSourceBar/index.vue b/kystudio/src/components/common/DataSourceBar/index.vue index 5c5b7c482e..bd5b8c11d5 100644 --- a/kystudio/src/components/common/DataSourceBar/index.vue +++ b/kystudio/src/components/common/DataSourceBar/index.vue @@ -1,21 +1,32 @@ - + -{{$t('kylinLang.common.dataSource')}} +{{$t('kylinLang.common.dataSourceTable')}} - + - + + + + +{{$t('importFromDatasource')}} + +{{$t('createByDDL')}} + + @@ -173,6 +184,10 @@ import { handleSuccessAsync, handleError, objectClone } from '../../../util' isSecondStorageEnabled: { type: Boolean, default: false +}, +showDDL: { + type: Boolean, + default: false } }, components: { @@ -182,7 +197,8 @@ import { handleSuccessAsync, handleError, objectClone } from '../../../util' ...mapGetters([ 'isAdminRole', 'isProjectAdmin', - 'currentProjectData' + 'currentProjectData', + 'datasourceActions' ]) }, methods: { @@ -330,6 +346,16 @@ export default class DataSourceBar extends Vue { hideLoading (data) { data.isLoading = false } + addDataSource (command) { +switch (command) { + case 'default': +this.importDataSource('selectSource', this.currentProjectData) +break + case 'ddl': +this.$router.push('/studio/ddl') +break +} + } async initTree () { try { this.isSearchIng = false @@ -476,7 +502,7 @@ export default class DataSourceBar extends Vue { !isNotResetDefaultExpandedKeys && this.resetDefaultExpandedKeys() this.filterText = filterText freshTreeOrder(this) - this.selectFirstTable() + // this.selectFirstTable() resolve() }) } @@ -729,12 +755,13 @@ export default class DataSourceBar extends Vue { padding: 24px 16px 16px 16px; font-size: 16px; color: @text-title-color; +display: flex; +justify-content: space-between; } .body { padding: 0px 16px 16px; } .header-text { -float: left; span { line-height: 20px; } @@ -742,7 +769,7 @@ export default class DataSourceBar extends Vue { .icon-btns { position: relative; height: 22px; -top: 2px; +// top: 2px; } .header-icons { float: right; @@ -959,4 +986,7 @@ export default class DataSourceBar extends Vue { left: 0; } } +.info-icon { + color: @text-placeholder-color; +} diff --git a/kystudio/src/components/common/DataSourceBar/locales.js b/kystudio/src/components/common/DataSourceBar/locales.js index 01ca76d98c..6429a88f26 100644 --- a/kystudio/src/components/common/DataSourceBar/locales.js +++ b/kystudio/src/components/common/DataSourceBar/locales.js @@ -19,6 +19,9 @@ export default { databases: 'Database', tables: 'Table', cloudHive: 'Object Storage', -factTable: 'Fact Table' +factTable: 'Fact Table', +importFromDatasource: 'Import from Data Source', +createByDDL: 'DDL Create', +createDDLTip: 'Data Definition Language Create Table' } } diff --git a/kystudio/src/components/layout/layout_left_right_top.vue b/kystudio/src/components/layout/layout_left_right_top.vue index 63dbeff82d..d07f7bfa81 100644 --- a/kystudio/src/components/layout/layout_left_right_top.vue +++ b/kystudio/src/components/layout/layout_left_right_top.vue @@ -329,15 +329,16 @@ export default class LayoutLeftRightTop extends Vue { } } showMenuByRole (menuName) { -let isShowSnapshot = true -let isShowStreamingJob = true -if (menuName === 'snapshot') { - isShowSnapshot =
[kylin] 01/12: KYLIN-5541 support aggregate index text recognize
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git commit 424bb2450e0a942df00c95b89c29a8783d7029c1 Author: Qian Xia AuthorDate: Fri Jun 2 17:39:33 2023 +0800 KYLIN-5541 support aggregate index text recognize --- kystudio/build/webpack.base.conf.js| 2 +- kystudio/package.json | 1 + kystudio/src/assets/styles/index.less | 1 + kystudio/src/components/common/Modal/Modal.vue | 5 +- .../RecognizeAggregateModal.vue| 575 + .../common/RecognizeAggregateModal/error.svg | 3 + .../common/RecognizeAggregateModal/handler.js | 115 + .../common/RecognizeAggregateModal/locales.js | 28 + .../common/RecognizeAggregateModal/store.js| 120 + .../common/RecognizeAggregateModal/warning.svg | 3 + .../StudioModel/ModelList/AggregateModal/index.vue | 47 ++ .../ModelList/AggregateModal/locales.js| 3 +- kystudio/src/config/index.js | 7 + 13 files changed, 907 insertions(+), 3 deletions(-) diff --git a/kystudio/build/webpack.base.conf.js b/kystudio/build/webpack.base.conf.js index a1532d7b9b..712ff5c1a3 100644 --- a/kystudio/build/webpack.base.conf.js +++ b/kystudio/build/webpack.base.conf.js @@ -55,7 +55,7 @@ module.exports = { { test: /\.js$/, loader: 'babel-loader', -include: [resolve('src'), resolve('test'), resolve('node_modules/vue-awesome')], +include: [resolve('src'), resolve('test'), resolve('node_modules/vue-awesome'), resolve('node_modules/vue-virtual-scroller')], options: { presets: ['@babel/preset-env'] } diff --git a/kystudio/package.json b/kystudio/package.json index 98802c940d..d7ed33f2e8 100644 --- a/kystudio/package.json +++ b/kystudio/package.json @@ -42,6 +42,7 @@ "vue-property-decorator": "7.0.0", "vue-resource": "1.5.1", "vue-router": "2.8.1", +"vue-virtual-scroller": "^1.0.10", "vue2-ace-editor": "0.0.3", "vuex": "2.5.0" }, diff --git a/kystudio/src/assets/styles/index.less b/kystudio/src/assets/styles/index.less index 5b1f4c7b0b..1ed2b24a57 100644 --- a/kystudio/src/assets/styles/index.less +++ b/kystudio/src/assets/styles/index.less @@ -2,6 +2,7 @@ @import '~kyligence-kylin-ui/lib/theme-chalk/index.css'; @import '~smooth-scrollbar/dist/smooth-scrollbar.css'; @import '~nprogress/nprogress.css'; +@import '~vue-virtual-scroller/dist/vue-virtual-scroller.css'; // custom stylesheet @import './icons.less'; diff --git a/kystudio/src/components/common/Modal/Modal.vue b/kystudio/src/components/common/Modal/Modal.vue index a59d797a6a..cbc9978a48 100644 --- a/kystudio/src/components/common/Modal/Modal.vue +++ b/kystudio/src/components/common/Modal/Modal.vue @@ -8,6 +8,7 @@ + @@ -23,6 +24,7 @@ import ModelsExportModal from '../ModelsExportModal/ModelsExportModal.vue' import ModelsImportModal from '../ModelsImportModal/ModelsImportModal.vue' import ModelERDiagramModal from '../ModelERDiagramModal/ModelERDiagramModal' import EditProjectConfigDialog from '../EditProjectConfigDialog' +import RecognizeAggregateModal from '../RecognizeAggregateModal/RecognizeAggregateModal' @Component({ computed: { @@ -38,7 +40,8 @@ import EditProjectConfigDialog from '../EditProjectConfigDialog' ModelsImportModal, ProjectEditModal, ModelERDiagramModal, -EditProjectConfigDialog +EditProjectConfigDialog, +RecognizeAggregateModal } }) export default class Modal extends Vue { diff --git a/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue b/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue new file mode 100644 index 00..c3ab6ac753 --- /dev/null +++ b/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue @@ -0,0 +1,575 @@ + + + + + + + {{$tc('errorCount', errorCount, { count: errorCount })}} + +{{$tc('repeatCount', repeatCount, { count: repeatCount })}} + + + + + + + + + + + + + + + + + {{$tc('selectedDimensionCount', selectedDimensionCount, { count: selectedDimensionCount })}} + + + + {{$t('dimensionName')}} + {{$t('dataType')}} + + + + + + {{ item.label }} + {{ item.dataType }} + + + + + + + +
[kylin] 03/12: KYLIN-5543 validate dimensions
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git commit 9cadd4bccd48af4c4ceaf514497d53ad3c1ccdcc Author: Qian Xia AuthorDate: Mon Jun 5 16:26:07 2023 +0800 KYLIN-5543 validate dimensions --- .../common/RecognizeAggregateModal/RecognizeAggregateModal.vue| 4 ++-- kystudio/src/components/common/RecognizeAggregateModal/handler.js | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue b/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue index c3ab6ac753..8f0928880d 100644 --- a/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue +++ b/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue @@ -301,8 +301,8 @@ const dimensions = [] this.clearupErrors() let formattedText = '' - for (const text of form.text.replace(/^\n|\n$/g, '').split(/,\n*/g)) { -const columnText = text.trim() + for (const text of form.text.replace(/\n*/g, '').split(/,\n*/g)) { +const columnText = text.trim().toLocaleUpperCase() if (columnText) { const dimension = modelDimensions.find(d => d.column === columnText) if (dimension) { diff --git a/kystudio/src/components/common/RecognizeAggregateModal/handler.js b/kystudio/src/components/common/RecognizeAggregateModal/handler.js index cf4930ca14..f8cdc0d6e8 100644 --- a/kystudio/src/components/common/RecognizeAggregateModal/handler.js +++ b/kystudio/src/components/common/RecognizeAggregateModal/handler.js @@ -69,6 +69,9 @@ export function scrollToLineAndHighlight (editor, line) { export function searchColumnInEditor (editor, column) { const { $search: editorSearch } = editor const session = editor.getSession() + column = column.replace(/[\\$|\\/|\\^|\\?]/g, ($1) => { +return `\\${$1}` + }) editorSearch.setOptions({ needle: `^${column},\n`,
[kylin] 07/12: KYLIN-5549 display the number of used dimensions
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git commit cf9b4fba092c7b09a98719df51d1670a1f053821 Author: Qian Xia AuthorDate: Tue Jun 6 15:18:51 2023 +0800 KYLIN-5549 display the number of used dimensions --- .../RecognizeAggregateModal.vue| 18 +- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue b/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue index 35192396dd..554e73a2cf 100644 --- a/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue +++ b/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue @@ -34,6 +34,9 @@ {{$tc('selectedDimensionCount', selectedDimensionCount, { count: selectedDimensionCount })}} + +|{{$t('usedDimensionCount', {count: usedDimensionCount})}} + @@ -42,7 +45,7 @@ @@ -138,6 +141,12 @@ this.updatePlaceHolder() this.updateRecognizeShortcut(newVal, oldVal) } +get dimensionList () { + const { dimensions } = this.form + const usedItems = dimensions.filter(it => it.isDisabled) + const selectedItems = dimensions.filter(it => !it.isDisabled) + return [...selectedItems, ...usedItems] +} get errorCount () { const { errorInEditor } = this return errorInEditor.filter(line => [ERROR_TYPE.COLUMN_NOT_IN_MODEL, ERROR_TYPE.COLUMN_NOT_IN_INCLUDES].includes(line.type)).length @@ -150,6 +159,10 @@ const { form: { dimensions } } = this return dimensions.filter(dimension => dimension.isChecked).length } +get usedDimensionCount () { + const { form: { dimensions } } = this + return dimensions.filter(dimension => dimension.isDisabled).length +} get isSelectAll () { const { form: { dimensions } } = this return !dimensions.some(dimension => !dimension.isChecked && !dimension.isDisabled) @@ -475,6 +488,9 @@ font-weight: 400; font-size: 12px; line-height: 16px; + .divide { +color: @text-placeholder-color; + } } .actions { position: absolute;
[kylin] 10/12: KYLIN-5552 add style of break words
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git commit b4e366d894921cbeff3a2d357b7ae3397457597d Author: Qian Xia AuthorDate: Tue Jun 6 16:34:31 2023 +0800 KYLIN-5552 add style of break words --- kystudio/src/components/studio/DDL/ddl.vue | 21 - 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/kystudio/src/components/studio/DDL/ddl.vue b/kystudio/src/components/studio/DDL/ddl.vue index 1a2a01205e..17d0214873 100644 --- a/kystudio/src/components/studio/DDL/ddl.vue +++ b/kystudio/src/components/studio/DDL/ddl.vue @@ -191,6 +191,7 @@ + @import '../../../assets/styles/variables.less'; .ddl-container { width: 100%; height: 100%; @@ -234,13 +235,13 @@ flex-direction: column; align-items: center; gap: 8px; -border-left: 1px solid #E6EBF4; +border-left: 1px solid @ke-border-secondary; padding: 8px 8px; box-sizing: border-box; .el-button { - color: #8B99AE; + color: @text-disabled-color; &.is-active { -background: #ECF0F8 !important; +background: @ke-background-color-hover !important; } } } @@ -251,20 +252,21 @@ .label { font-size: 14px; font-weight: 400; -color: #8B99AE; +color: @text-disabled-color; line-height: 22px; margin-bottom: 16px; } .item { font-size: 14px; -color: #2F374C; +color: @text-title-color; line-height: 22px; +word-break: break-all; } .trance-msg { height: 270px; overflow: auto; -background: #F8F9FB; -border: 1px solid #E6EBF4; +background: @ke-background-color-secondary; +border: 1px solid @ke-border-secondary; border-radius: 4px; margin-bottom: 16px; padding: 8px 16px; @@ -319,7 +321,7 @@ align-items: center; padding: 0 16px; box-sizing: border-box; - border-bottom: 1px solid #E6EBF4; + border-bottom: 1px solid @ke-border-secondary; .title { font-weight: 600; font-size: 16px; @@ -328,6 +330,7 @@ } + @import '../../../assets/styles/variables.less'; .ddl-editor { .ace_content { width: 100% !important; @@ -361,6 +364,6 @@ } } .accelerator-key { -color: #8B99AE; +color: @text-disabled-color; }
[kylin] 05/12: KYLIN-5547 change the style of recognize aggregate modal
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git commit fbe00ccb6ff4591062ce6c8311b75c7f7b478929 Author: Qian Xia AuthorDate: Tue Jun 6 11:24:56 2023 +0800 KYLIN-5547 change the style of recognize aggregate modal --- .../RecognizeAggregateModal.vue| 22 -- .../common/RecognizeAggregateModal/locales.js | 2 +- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue b/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue index 8f0928880d..35192396dd 100644 --- a/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue +++ b/kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue @@ -24,12 +24,13 @@ - - + + {{$t('dexecute')}}{{$t('acceleratorKey')}} + - + {{$tc('selectedDimensionCount', selectedDimensionCount, { count: selectedDimensionCount })}} @@ -67,7 +68,7 @@ {{$t('kylinLang.common.cancel')}} - {{$t('kylinLang.common.submit')}} + {{$t('kylinLang.common.save')}} @@ -126,6 +127,8 @@ }) export default class RecognizeAggregateModal extends Vue { ALERT_STATUS = ALERT_STATUS +loadingRecognize = false + @Watch('$lang') onLocaleChanged () { this.updatePlaceHolder() @@ -279,8 +282,8 @@ this.$nextTick(() => refreshEditor(editor)) } handleDexecute (event) { - const { metaKey, key, keyCode } = event - if (metaKey && (keyCode === 13 || key === 'Enter')) { + const { metaKey, ctrlKey, key, keyCode } = event + if ((metaKey || ctrlKey) && (keyCode === 13 || key === 'Enter')) { this.handleRecognize() } } @@ -301,6 +304,7 @@ const dimensions = [] this.clearupErrors() let formattedText = '' + this.loadingRecognize = true for (const text of form.text.replace(/\n*/g, '').split(/,\n*/g)) { const columnText = text.trim().toLocaleUpperCase() if (columnText) { @@ -331,6 +335,9 @@ this.setModalForm({ text: formattedText, dimensions }) this.$nextTick(() => { this.showErrors() +setTimeout(() => { + this.loadingRecognize = false +}, 500) }) } handlePrevious () { @@ -571,5 +578,8 @@ margin-left: 15px; } } + .accelerator-key { +color: @text-disabled-color; + } \ No newline at end of file diff --git a/kystudio/src/components/common/RecognizeAggregateModal/locales.js b/kystudio/src/components/common/RecognizeAggregateModal/locales.js index 31ebef97e2..c60a41ecea 100644 --- a/kystudio/src/components/common/RecognizeAggregateModal/locales.js +++ b/kystudio/src/components/common/RecognizeAggregateModal/locales.js @@ -10,7 +10,7 @@ export default { selectedDimensionCount: 'Select {count} results | Select {count} result | Select {count} results', usedDimensionCount: '{count} already exists', inputPlaceholder1: 'Please paste the text, separated by "," to identify the selected column.', -inputPlaceholder2: 'Example: CUSTOMER.C_CUSTKEY,CUSTOMER.C_CUSTKEY', +inputPlaceholder2: 'Example: CUSTOMER.C_CUSTKEY, CUSTOMER.C_CUSTKEY', inputPlaceholderTooltip1: 'Method 1: Enter the formula A1 & "," on a new column in Excel, enter and drag the bottom right corner of the cell to add in bulk;', inputPlaceholderTooltip2: 'Method 2: Select all the cells that need to added in bulk, right-click and select the cell format (shortcut cmd & ctrl + 1). Select "Custom", enter English format General "," or @ "," in the type, confirm and add in bulk.', inputPlaceholderTooltipTrigger: 'Not sure how to batch add characters?',
[kylin] 06/12: KYLIN-5548 change ddl text
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git commit 425b15452413838cb9b2b4676051cb3506d35c6f Author: Qian Xia AuthorDate: Tue Jun 6 14:56:51 2023 +0800 KYLIN-5548 change ddl text --- kystudio/src/components/studio/DDL/ddl.vue | 23 ++- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/kystudio/src/components/studio/DDL/ddl.vue b/kystudio/src/components/studio/DDL/ddl.vue index 40dfb12078..1a2a01205e 100644 --- a/kystudio/src/components/studio/DDL/ddl.vue +++ b/kystudio/src/components/studio/DDL/ddl.vue @@ -9,7 +9,7 @@ - {{$t('runBtnTip')}}⌃/⌘ enter + {{$t('runBtnTip')}}{{$t('acceleratorKey')}} @@ -94,25 +94,14 @@ newDDLTable: 'New DDL Table', datasourceTable: 'Data Source Table', syntaxRules: 'Syntax Rules', -createDDLSuggestionTitle: '在 KE 中创建 DDL Table 需要遵循 KE 的语法规则。', +createDDLSuggestionTitle: 'To create a DDL Table in KE, you need to follow the syntax rules of KE.', importDataSource: 'Import', -runBtnTip: '执行 ', -runSuccess: 'Dexecute succeed.', -runFailed: 'Execute Failed,Please check and try again.', +runBtnTip: 'Execute ', +acceleratorKey: '⌃/⌘ enter', +runSuccess: 'Execute succeed.', +runFailed: 'Execute Failed, Please check and try again.', createViewSuccessAlert: 'The DDL Table is created to hive after executing "Create View". Please importing the table to data source to be available.', goToImport: 'Go to Import' - }, - 'zh-cn': { -newDDLTable: '新的 DDL 表', -datasourceTable: '数据源表', -syntaxRules: '语法规则', -createDDLSuggestionTitle: '在 KE 中创建 DDL Table 需要遵循 KE 的语法规则。', -importDataSource: '导入', -runBtnTip: 'Dexecute ', -runSuccess: '执行成功', -runFailed: '执行失败,请检查后重试', -createViewSuccessAlert: '“Create View” 执行后 DDL Table 创建至 Hive,需从数据源导入后可用。', -goToImport: '立即导入' } } })
[kylin] 02/12: KYLIN-5542 add a new indexType when query hit model
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git commit 63634c28e08d796e040273f8b0d2012294564136 Author: Qian Xia AuthorDate: Mon Jun 5 15:56:04 2023 +0800 KYLIN-5542 add a new indexType when query hit model --- kystudio/src/components/query/query_result.vue | 30 +++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/kystudio/src/components/query/query_result.vue b/kystudio/src/components/query/query_result.vue index 021d21f8e5..b59e864d7b 100644 --- a/kystudio/src/components/query/query_result.vue +++ b/kystudio/src/components/query/query_result.vue @@ -4,10 +4,11 @@ +{{$t('buildIndexAlertTip')}}{{$t('gotoBuild')}} @@ -276,7 +277,9 @@ import echarts from 'echarts' refreshManual: 'No data, please click to refresh', loading: 'Loading...', refreshLater: 'No results, please try again later', - fetchError: 'Can\'t get the result as the record is missing' + fetchError: 'Can\'t get the result as the record is missing', + buildIndexAlertTip: 'No model index built. Build model index to speed up query.', + gotoBuild: 'Go to build' } }, filters: { @@ -327,6 +330,7 @@ export default class queryResult extends Vue { model = { uuid: '' } + // 增加可视化按钮 get insightBtnGroups () { return [ @@ -483,7 +487,7 @@ export default class queryResult extends Vue { if (this.extraoption.realizations && this.extraoption.realizations.length) { let realizations = [] for (let i of this.extraoption.realizations) { -if (!((i.layoutId === -1 || i.layoutId === null || i.layoutId === 0) && i.indexType !== null)) { +if (!((i.layoutId === -1 || i.layoutId === null || i.layoutId === 0) && (i.indexType !== null && i.indexType !== 'Filter Conflict'))) { realizations.push(i) } } @@ -531,10 +535,26 @@ export default class queryResult extends Vue { } return isAnyNull } + get includeFilterIndexType () { +let flag = false +if (this.extraoption.realizations && this.extraoption.realizations.length) { + for (let i in this.extraoption.realizations) { +if (this.extraoption.realizations[i].layoutId === -1 && this.extraoption.realizations[i].indexType === 'Filter Conflict') { + flag = true + break +} + } +} +return flag + } get noModelRangeTips () { return this.$store.state.project.multi_partition_enabled ? this.$t('noModelRangeTips2') : this.$t('noModelRangeTips') } + jumpRouter (path) { +this.$router.push(path) + } + // 展示 layout 详情 async openLayoutDetails (item) { const {modelId, layoutId} = item @@ -828,6 +848,10 @@ export default class queryResult extends Vue { top: 0px; } } +.jump-link { + color: @ke-color-primary; + cursor: pointer; +} .el-table .cell{ word-break: break-all!important; }
[kylin] 11/12: KYLIN-5553 display the result when run show create table
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git commit b930cdb137192075dad0a0e5325ce0a5b6cd5b03 Author: Qian Xia AuthorDate: Tue Jun 6 16:52:09 2023 +0800 KYLIN-5553 display the result when run show create table --- kystudio/src/components/studio/DDL/ddl.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kystudio/src/components/studio/DDL/ddl.vue b/kystudio/src/components/studio/DDL/ddl.vue index 17d0214873..4042ae762a 100644 --- a/kystudio/src/components/studio/DDL/ddl.vue +++ b/kystudio/src/components/studio/DDL/ddl.vue @@ -153,7 +153,7 @@ const resultData = await handleSuccessAsync(res) this.running = false this.showCreateSuccessAlert = this.content.toLocaleLowerCase().indexOf('create view') > -1 -this.showCreateSuccessAlert && this.insertEditorContent(`\n\n${resultData}`) +resultData && this.insertEditorContent(`\n\n${resultData}`) this.resetErrorMsg() this.$message({ type: 'success', message: this.$t('runSuccess') }) } catch (e) {
[kylin] branch kylin5 updated (1d1a9d0d60 -> 10e4e9ec3a)
This is an automated email from the ASF dual-hosted git repository. xxyu pushed a change to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git from 1d1a9d0d60 [DIRTY] Fix Sonar new 424bb2450e KYLIN-5541 support aggregate index text recognize new 63634c28e0 KYLIN-5542 add a new indexType when query hit model new 9cadd4bccd KYLIN-5543 validate dimensions new 2878bb8279 KYLIN-5543 support ddl new fbe00ccb6f KYLIN-5547 change the style of recognize aggregate modal new 425b154524 KYLIN-5548 change ddl text new cf9b4fba09 KYLIN-5549 display the number of used dimensions new c3355e6e80 KYLIN-5550 change text in import model new 40165755ba KYLIN-5551 get query history within one day new b4e366d894 KYLIN-5552 add style of break words new b930cdb137 KYLIN-5553 display the result when run show create table new 10e4e9ec3a KYLIN-5554 change tips when import same name model The 12 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: kystudio/build/webpack.base.conf.js| 2 +- kystudio/package.json | 1 + kystudio/src/assets/styles/index.less | 1 + .../src/components/common/DataSourceBar/index.vue | 48 +- .../src/components/common/DataSourceBar/locales.js | 5 +- kystudio/src/components/common/Modal/Modal.vue | 5 +- .../common/ModelsImportModal/ModelsImportModal.vue | 4 +- .../components/common/ModelsImportModal/locales.js | 6 +- .../RecognizeAggregateModal.vue| 601 + .../common/RecognizeAggregateModal/error.svg | 3 + .../common/RecognizeAggregateModal/handler.js | 118 .../common/RecognizeAggregateModal/locales.js | 28 + .../common/RecognizeAggregateModal/store.js| 120 .../common/RecognizeAggregateModal/warning.svg | 3 + .../components/layout/layout_left_right_top.vue| 17 +- kystudio/src/components/query/query_history.vue| 6 +- .../src/components/query/query_history_table.vue | 6 +- kystudio/src/components/query/query_result.vue | 30 +- kystudio/src/components/studio/DDL/ddl.vue | 369 + .../StudioModel/ModelList/AggregateModal/index.vue | 47 ++ .../ModelList/AggregateModal/locales.js| 3 +- .../src/components/studio/StudioSource/index.vue | 1 + kystudio/src/config/index.js | 10 +- kystudio/src/config/spec.js| 14 +- kystudio/src/locale/en.js | 2 + kystudio/src/router/index.js | 4 + kystudio/src/service/datasource.js | 6 + kystudio/src/store/datasource.js | 8 + kystudio/src/store/system.js | 4 +- kystudio/src/store/types.js| 3 + 30 files changed, 1436 insertions(+), 39 deletions(-) create mode 100644 kystudio/src/components/common/RecognizeAggregateModal/RecognizeAggregateModal.vue create mode 100644 kystudio/src/components/common/RecognizeAggregateModal/error.svg create mode 100644 kystudio/src/components/common/RecognizeAggregateModal/handler.js create mode 100644 kystudio/src/components/common/RecognizeAggregateModal/locales.js create mode 100644 kystudio/src/components/common/RecognizeAggregateModal/store.js create mode 100644 kystudio/src/components/common/RecognizeAggregateModal/warning.svg create mode 100644 kystudio/src/components/studio/DDL/ddl.vue