Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

F#2352 enable prep spark engine #2464

Merged
merged 14 commits into from Aug 20, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -46,10 +46,10 @@
<i class="ddp-icon-radio"></i>
<span class="ddp-txt-radio">{{'msg.dp.ui.file-system' | translate }}</span>
</label>
<label class="ddp-label-radio ddp-inline" *ngIf="isStagingEnabled()">
<input type="radio" name="snapshotFormatRadio" (change)="changeSsType(SsType.STAGING_DB)">
<label class="ddp-label-radio ddp-inline">
<input type="radio" name="snapshotFormatRadio" [disabled]="false===isStagingEnabled()" (change)="changeSsType(SsType.STAGING_DB)">
<i class="ddp-icon-radio"></i>
<span class="ddp-txt-radio">{{ 'msg.dp.th.hive' | translate }}</span>
<span class="ddp-txt-radio">{{ 'msg.dp.th.stagingdb' | translate }}</span>
</label>
</div>
<!-- //edit option -->
Expand All @@ -69,26 +69,49 @@
</component-select>
<!-- //selectbox -->
</div>
<!-- edit -->
<div class="ddp-wrap-edit3 ddp-type">
<label class="ddp-label-type">{{'msg.dp.th.file-format' | translate}}</label>
<!-- selectbox -->
<component-select
[array]="fileFormat"
[isUpSelect]="false"
[viewKey]="'label'"
[isFull]="true"
(onSelected)="onSelected($event,'format')">
</component-select>
<!-- //selectbox -->
<!-- //edit option -->
</div>
<!-- 고급설정 -->
<!-- ddplink-high 클릭시 ddp-selected 추가 -->
<div class="ddp-wrap-high" [ngClass]="{ 'ddp-selected' : isAdvancedPrefOpen }">
<div class="ddp-ui-high-option">
<a href="javascript:" class="ddp-link-high" (click)="toggleAdvancedSettingBtn()">{{'msg.dp.btn.advanced.settings' | translate }}<em class="ddp-icon-view"></em></a>
</div>
<div class="ddp-high-setting">
<!-- edit -->
<div class="ddp-wrap-edit3 ddp-type ddp-mgb20">
<label class="ddp-label-type">{{'msg.dp.th.ss.etl-engine' | translate}}</label>
<!-- edit option -->
<div class="ddp-ui-edit-option">
<label class="ddp-label-radio ddp-inline">
<input type="radio" checked (change)="changeEtlEngine(Engine.EMBEDDED)" name="EtlEngineRadio">
<i class="ddp-icon-radio"></i>
<span class="ddp-txt-radio">{{'msg.dp.th.ss.etl-engine.embedded' | translate }}</span>
</label>
<label class="ddp-label-radio ddp-inline">
<input type="radio" [disabled]="false===isSparkEnabled()" (change)="changeEtlEngine(Engine.SPARK)" name="EtlEngineRadio">
<i class="ddp-icon-radio"></i>
<span class="ddp-txt-radio">{{'msg.dp.th.ss.etl-engine.spark' | translate }}</span>
</label>
</div>
<!-- //edit option -->
</div>
</div>
<!-- //edit -->
<div class="ddp-high-setting">
<!-- edit -->
<div class="ddp-wrap-edit3 ddp-type">
<label class="ddp-label-type">{{'msg.dp.th.file-format' | translate}}</label>
<!-- selectbox -->
<component-select
[array]="fileFormat"
[isUpSelect]="false"
[viewKey]="'label'"
[isFull]="true"
(onSelected)="onSelected($event,'format')">
</component-select>
<!-- //selectbox -->
<!-- //edit option -->
</div>
</div>
<div class="ddp-high-setting">
<div class="ddp-wrap-edit3 ddp-type">
<label class="ddp-label-type">{{ 'msg.dp.ui.file-url' | translate }}</label>
Expand Down Expand Up @@ -141,6 +164,7 @@
</div>
<div class="ddp-high-setting">
<!-- edit -->
<!--
<div class="ddp-wrap-edit3 ddp-type">
<label class="ddp-label-type">{{ 'msg.dp.ui.etl-engine' | translate }}</label>
<component-select
Expand All @@ -151,9 +175,30 @@
(onSelected)="onSelected($event,'engine')"
>
</component-select>
</div>
-->
<!-- //edit option -->

<!-- edit -->
<div class="ddp-wrap-edit3 ddp-type ddp-mgb20">
<label class="ddp-label-type">{{'msg.dp.th.ss.etl-engine' | translate}}</label>
<!-- edit option -->
<div class="ddp-ui-edit-option">
<label class="ddp-label-radio ddp-inline">
<input type="radio" checked (change)="changeEtlEngine(Engine.EMBEDDED)" name="EtlEngineRadio">
<i class="ddp-icon-radio"></i>
<span class="ddp-txt-radio">{{'msg.dp.th.ss.etl-engine.embedded' | translate }}</span>
</label>
<label class="ddp-label-radio ddp-inline">
<input type="radio" (change)="changeEtlEngine(Engine.SPARK)" name="EtlEngineRadio">
<i class="ddp-icon-radio"></i>
<span class="ddp-txt-radio">{{'msg.dp.th.ss.etl-engine.spark' | translate }}</span>
</label>
</div>
<!-- //edit option -->
</div>
<!-- //edit -->

<div class="ddp-wrap-edit3 ddp-type">
<label class="ddp-label-type">{{'msg.dp.th.file-format' | translate}}</label>
<!-- selectbox -->
Expand Down
Expand Up @@ -53,6 +53,8 @@ export class CreateSnapshotPopup extends AbstractPopupComponent implements OnIni
private uriFileFormat: UriFileFormat;

private _isDataprepStagingEnabled: boolean = true;
private _isSparkEngineEnabled: boolean = false;

/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| Public Variables
|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
Expand All @@ -78,6 +80,8 @@ export class CreateSnapshotPopup extends AbstractPopupComponent implements OnIni

public overwriteMethod: {value: AppendMode, label: string}[];

public Engine = Engine;

public engineList: {value: Engine, label: string}[];

public hiveEmbeddedFormat : {value: HiveFileFormat, label: string}[];
Expand Down Expand Up @@ -229,15 +233,13 @@ export class CreateSnapshotPopup extends AbstractPopupComponent implements OnIni

// file uri cannot be empty
if (SsType.URI === this.snapshot.ssType) {
this.snapshot.engine = Engine.EMBEDDED;
if (this.snapshot.storedUri.length < 1){
this.fileUrlErrorMsg = this.translateService.instant('msg.common.ui.required');
this.isErrorShow = true;
return;
}
}


this.loadingShow();
this._createSnapshot(this.datasetId, this.snapshot);

Expand Down Expand Up @@ -355,6 +357,13 @@ export class CreateSnapshotPopup extends AbstractPopupComponent implements OnIni

}

/**
* Change ETL Engine
* @param engine
*/
public changeEtlEngine(engine : Engine) {
this.snapshot.engine = engine;
}

/**
* Toggle Advanced setting button
Expand All @@ -368,10 +377,17 @@ export class CreateSnapshotPopup extends AbstractPopupComponent implements OnIni
* Check if staging is enabled
*/
public isStagingEnabled() :boolean {
return StorageService.isEnableStageDB && this._isDataprepStagingEnabled
return StorageService.isEnableStageDB && this._isDataprepStagingEnabled;
}


/**
* Check if spark engine is enabled
*/
public isSparkEnabled() :boolean {
return this._isSparkEngineEnabled;
}

/**
* Remove error msg when keydown in ssName
*/
Expand Down Expand Up @@ -482,7 +498,8 @@ export class CreateSnapshotPopup extends AbstractPopupComponent implements OnIni
];

this.engineList = [
{ value : Engine.EMBEDDED, label : 'Embedded Engine' }
{ value : Engine.EMBEDDED, label : 'Embedded Engine' },
{ value : Engine.SPARK, label : 'Spark' }
];

}
Expand Down Expand Up @@ -561,6 +578,8 @@ export class CreateSnapshotPopup extends AbstractPopupComponent implements OnIni

this.dataflowService.getConfiguration(this.datasetId).then((conf) => {

this._isSparkEngineEnabled = conf['sparkEngineEnabled'];

this.ssName = this._getDefaultSnapshotName(conf['ss_name']);

this._setFileLocationAndUri(conf['file_uri']);
Expand All @@ -570,7 +589,10 @@ export class CreateSnapshotPopup extends AbstractPopupComponent implements OnIni

this._getStagingDb();

// default: URI & EMBBEDED
this.changeSsType(SsType.URI);
this.changeEtlEngine(Engine.EMBEDDED);


this.loadingHide();
resolve();
Expand Down
Expand Up @@ -233,7 +233,7 @@
</dt>
<dd>

<div class="ddp-ui-sub">
<div class="ddp-ui-sub" *ngIf="originDsInfo.dsName">
<span class="ddp-data-sub">{{'msg.board.th.datasource' | translate}} <em class="ddp-data-result">{{ originDsInfo.dsName }}</em></span>
</div>
<div class="ddp-ui-sub" *ngIf="originDsInfo.qryStmt">
Expand All @@ -242,7 +242,7 @@
<div class="ddp-ui-sub" *ngIf="originDsInfo.filePath">
<span class="ddp-data-sub">{{'msg.dp.th.file.path' | translate}} <em class="ddp-data-result">{{ originDsInfo.filePath }}</em></span>
</div>
<div class="ddp-ui-sub">
<div class="ddp-ui-sub" *ngIf="originDsInfo.createdTime">
<span class="ddp-data-sub">{{'msg.comm.ui.list.created' | translate}} <em class="ddp-data-result">{{originDsInfo.createdTime | mdate:'YYYY-MM-DD HH:mm'}}</em></span>
</div>
</dd>
Expand Down
Expand Up @@ -612,7 +612,11 @@ export class DataSnapshotDetailComponent extends AbstractComponent implements On
let sourceInfo = this.selectedDataSnapshot.sourceInfo;

if( isUndefined(sourceInfo) ) {
Alert.warning(this.translateService.instant('msg.dp.alert.imported.ds.info'));
//Alert.warning(this.translateService.instant('msg.dp.alert.imported.ds.info'));
this.originDsInfo.dsName = '';
this.originDsInfo.qryStmt = null;
this.originDsInfo.filePath = null;
this.originDsInfo.createdTime = null;
} else {
if( isUndefined(sourceInfo.origDsName) ) {
Alert.warning(this.translateService.instant('msg.dp.alert.imported.ds.name'));
Expand Down
Expand Up @@ -125,7 +125,8 @@ export enum HiveFileFormat {
}

export enum Engine {
EMBEDDED = <any>'EMBEDDED'
EMBEDDED = <any>'EMBEDDED',
SPARK = <any>'SPARK'
}

export enum Status {
Expand Down
4 changes: 4 additions & 0 deletions discovery-frontend/src/assets/i18n/en.json
Expand Up @@ -1044,6 +1044,7 @@
"msg.dp.th.group.every" : "GroupEvery",
"msg.dp.th.hdfs": "HDFS",
"msg.dp.th.hive": "HIVE",
"msg.dp.th.stagingdb": "Staging DB",
"msg.dp.th.ignore.case": "Ignore case",
"msg.dp.th.jdbc": "JDBC",
"msg.dp.th.join.keys": "Join keys",
Expand Down Expand Up @@ -1084,6 +1085,9 @@
"msg.dp.th.source.flow": "Source flow",
"msg.dp.th.ss": "Snapshot",
"msg.dp.th.ss-type": "Snapshot type",
"msg.dp.th.ss.etl-engine": "ETL Engine",
"msg.dp.th.ss.etl-engine.embedded": "Embedded Engine",
"msg.dp.th.ss.etl-engine.spark": "Spark",
"msg.dp.th.ss.cols" : "Columns",
"msg.dp.th.ss.delayed-del-ds" : "Delayed because of deleting data source",
"msg.dp.th.ss.generating" : "Generating",
Expand Down
4 changes: 4 additions & 0 deletions discovery-frontend/src/assets/i18n/ko.json
Expand Up @@ -1042,6 +1042,7 @@
"msg.dp.th.group.every" : "그룹 수",
"msg.dp.th.hdfs": "HDFS",
"msg.dp.th.hive": "HIVE",
"msg.dp.th.stagingdb": "Staging DB",
"msg.dp.th.ignore.case": "대소문자 구분 무시",
"msg.dp.th.jdbc": "JDBC",
"msg.dp.th.join.keys": "Join 키",
Expand Down Expand Up @@ -1082,6 +1083,9 @@
"msg.dp.th.source.flow": "소스 플로우",
"msg.dp.th.ss": "데이터스냅샷",
"msg.dp.th.ss-type": "스냅샷 타입",
"msg.dp.th.ss.etl-engine": "ETL Engine",
"msg.dp.th.ss.etl-engine.embedded": "Embedded Engine",
"msg.dp.th.ss.etl-engine.spark": "Spark",
"msg.dp.th.ss.cols" : "Columns",
"msg.dp.th.ss.delayed-del-ds" : "데이터 소스 삭제로 생성이 지연되고 있습니다",
"msg.dp.th.ss.generating" : "생성 중 입니다",
Expand Down
4 changes: 4 additions & 0 deletions discovery-frontend/src/assets/i18n/zh.json
Expand Up @@ -962,6 +962,7 @@
"msg.dp.th.group.every": "群组数",
"msg.dp.th.hdfs": "HDFS",
"msg.dp.th.hive": "HIVE",
"msg.dp.th.stagingdb": "Staging DB",
"msg.dp.th.ignore.case": "忽略大小写区分",
"msg.dp.th.jdbc": "JDBC",
"msg.dp.th.join.keys": "Join键",
Expand Down Expand Up @@ -1002,6 +1003,9 @@
"msg.dp.th.source.flow": "来源流",
"msg.dp.th.ss": "数据快照",
"msg.dp.th.ss-type": "数据快照类型",
"msg.dp.th.ss.etl-engine": "ETL Engine",
"msg.dp.th.ss.etl-engine.embedded": "Embedded Engine",
"msg.dp.th.ss.etl-engine.spark": "Spark",
"msg.dp.th.ss.cols": "列",
"msg.dp.th.ss.delayed-del-ds": "由于原数据删除,生成被延迟",
"msg.dp.th.ss.generating": "正在生成",
Expand Down