You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@carbondata.apache.org by kunal642 <gi...@git.apache.org> on 2018/04/05 10:12:46 UTC
[GitHub] carbondata pull request #2065: [CARBONDATA-2256] Adding sdv Testcases for SE...
Github user kunal642 commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2065#discussion_r179413817
--- Diff: integration/spark-common-cluster-test/src/test/scala/org/apache/carbondata/cluster/sdv/generated/SetParameterTestCase.scala ---
@@ -0,0 +1,267 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.carbondata.cluster.sdv.generated
+
+import org.apache.spark.sql.Row
+import org.apache.spark.sql.common.util._
+import org.scalatest.BeforeAndAfterAll
+
+import org.apache.carbondata.core.datastore.filesystem.{CarbonFile, CarbonFileFilter}
+import org.apache.carbondata.core.datastore.impl.FileFactory
+
+/**
+ * Test Class for SetParameterTestcase to verify all scenarios
+ */
+
+class SetParameterTestCase extends QueryTest with BeforeAndAfterAll {
+
+ override def beforeAll(): Unit = {
+ cleanAllTable()
+ }
+
+ private def cleanAllTable(): Unit = {
+ sql("drop table if exists carbon_table")
+ sql("drop table if exists emptyColumnValues")
+ sql("drop table if exists carbon_table_bad_record_logger")
+ sql("drop table if exists carbon_table_single_pass")
+ sql("drop table if exists carbon_table_disable_bad_record_logger")
+ sql("drop table if exists carbon_table_load")
+ sql("RESET")
+ }
+
+ override def afterAll(): Unit = {
+ cleanAllTable()
+ }
+
+ test("TC_001-test SET property for Bad Record Logger Enable=FALSE") {
+ sql("drop table if exists carbon_table_disable_bad_record_logger")
+ sql("SET carbon.options.bad.records.logger.enable=false")
+ sql(
+ "create table carbon_table_disable_bad_record_logger(empno int, empname String, designation String, " +
+ "doj Timestamp," +
+ "workgroupcategory int, workgroupcategoryname String, deptno int, deptname String," +
+ "projectcode int, projectjoindate Timestamp, projectenddate Timestamp,attendance int," +
+ "utilization int,salary int) STORED BY 'org.apache.carbondata.format'")
+ sql(
+ s"""LOAD DATA LOCAL INPATH '$resourcesPath/Data/sortcolumns/data.csv' into table
+ |carbon_table_disable_bad_record_logger options('FILEHEADER'='empno,empname,designation,doj,workgroupcategory,workgroupcategoryname,deptno,deptname,projectcode,projectjoindate,projectenddate,attendance,utilization,salary',
+ |'BAD_RECORDS_ACTION'='REDIRECT','BAD_RECORD_PATH'='$resourcesPath')"""
+ .stripMargin)
+ assert(getLogFileCount("default", "carbon_table_disable_bad_record_logger", "0") == 0)
+ }
+
+ test("TC_002-test SET property for Bad Record Logger Enable=TRUE") {
+ sql("drop table if exists carbon_table_bad_record_logger")
+ sql("SET carbon.options.bad.records.logger.enable=true")
+ sql(
+ "create table carbon_table_bad_record_logger(empno int, empname String, designation String," +
+ " doj Timestamp," +
+ "workgroupcategory int, workgroupcategoryname String, deptno int, deptname String," +
+ "projectcode int, projectjoindate Timestamp, projectenddate Timestamp,attendance int," +
+ "utilization int,salary int) STORED BY 'org.apache.carbondata.format'")
+ sql(
+ s"""LOAD DATA LOCAL INPATH '$resourcesPath/Data/sortcolumns/data.csv' into table
+ |carbon_table_bad_record_logger options('FILEHEADER'='empno,empname,designation,doj,workgroupcategory,workgroupcategoryname,deptno,deptname,projectcode,projectjoindate,projectenddate,attendance,utilization,salary',
+ |'BAD_RECORDS_ACTION'='REDIRECT','BAD_RECORD_PATH'='$resourcesPath')"""
+ .stripMargin)
+ assert(getLogFileCount("default", "carbon_table_bad_record_logger", "0") >= 1)
+ }
+
+ test("TC_003-test SET property for Bad Record Action=FORCE") {
+ sql("drop table if exists carbon_table")
+ sql("SET carbon.options.bad.records.action=force")
+ sql(
+ "create table carbon_table(empno int, empname String, designation String, doj Timestamp," +
+ "workgroupcategory int, workgroupcategoryname String, deptno int, deptname String," +
+ "projectcode int, projectjoindate Timestamp, projectenddate Timestamp,attendance int," +
+ "utilization int,salary int) STORED BY 'org.apache.carbondata.format'")
+ sql(
+ s"""LOAD DATA LOCAL INPATH '$resourcesPath/Data/sortcolumns/data.csv' into table
+ |carbon_table options('FILEHEADER'='empno,empname,designation,doj,workgroupcategory,workgroupcategoryname,deptno,deptname,projectcode,projectjoindate,projectenddate,attendance,utilization,salary')"""
+ .stripMargin)
+ checkAnswer(
+ s"""select count(*) from carbon_table""",
+ Seq(Row(11)), "SetParameterTestCase-TC_003-test SET property for Bad Record Action=FORCE")
+ }
+
+ test("TC_004-test SET property for Bad Record Action=REDIRECT") {
+ sql("drop table if exists carbon_table")
+ sql("SET carbon.options.bad.records.logger.enable=true")
+ sql("SET carbon.options.bad.records.action=redirect")
+ sql(s"SET carbon.options.bad.record.path=$resourcesPath")
+ sql(
+ "create table carbon_table(empno int, empname String, designation String, doj date," +
+ "workgroupcategory int, workgroupcategoryname String, deptno int, deptname String," +
+ "projectcode int, projectjoindate Timestamp, projectenddate Timestamp,attendance int," +
+ "utilization int,salary int) STORED BY 'org.apache.carbondata.format'")
+ sql(
+ s"""LOAD DATA LOCAL INPATH '$resourcesPath/Data/sortcolumns/data.csv' into table
+ |carbon_table options('FILEHEADER'='empno,empname,designation,doj,workgroupcategory,workgroupcategoryname,deptno,deptname,projectcode,projectjoindate,projectenddate,attendance,utilization,salary')"""
+ .stripMargin)
+ checkAnswer(
+ s"""select count(*) from carbon_table""",
+ Seq(Row(0)), "SetParameterTestCase-TC_004-test SET property for Bad Record Action=REDIRECT")
+ }
+
+ test("TC_005-test SET property for Bad Record Action=IGNORE") {
+ sql("drop table if exists carbon_table")
+ sql("SET carbon.options.bad.records.logger.enable=true")
+ sql("SET carbon.options.bad.records.action=ignore")
+ sql(
+ "create table carbon_table(empno int, empname String, designation String, doj date," +
+ "workgroupcategory int, workgroupcategoryname String, deptno int, deptname String," +
+ "projectcode int, projectjoindate Timestamp, projectenddate Timestamp,attendance int," +
+ "utilization int,salary int) STORED BY 'org.apache.carbondata.format'")
+ sql(
+ s"""LOAD DATA LOCAL INPATH '$resourcesPath/Data/sortcolumns/data.csv' into table
+ |carbon_table options('FILEHEADER'='empno,empname,designation,doj,workgroupcategory,workgroupcategoryname,deptno,deptname,projectcode,projectjoindate,projectenddate,attendance,utilization,salary')"""
+ .stripMargin)
+ checkAnswer(
+ s"""select count(*) from carbon_table""",
+ Seq(Row(0)), "SetParameterTestCase-TC_005-test SET property for Bad Record Action=IGNORE")
+ }
+
+ test("TC_006-test SET property for Bad Record Action=FAIL") {
+ sql("drop table if exists carbon_table")
+ sql("SET carbon.options.bad.records.logger.enable=true")
+ sql("SET carbon.options.bad.records.action=fail")
+ sql(
+ "create table carbon_table(empno int, empname String, designation String, doj date," +
+ "workgroupcategory int, workgroupcategoryname String, deptno int, deptname String," +
+ "projectcode int, projectjoindate Timestamp, projectenddate Timestamp,attendance int," +
+ "utilization int,salary int) STORED BY 'org.apache.carbondata.format'")
+ val exMessage = intercept[Exception] {
+ sql(
+ s"""LOAD DATA LOCAL INPATH '$resourcesPath/Data/sortcolumns/data.csv' into table
+ |carbon_table options('FILEHEADER'='empno,empname,designation,doj,workgroupcategory,workgroupcategoryname,deptno,deptname,projectcode,projectjoindate,projectenddate,attendance,utilization,salary')"""
+ .stripMargin)
+ }
+ assert(exMessage.getMessage.contains("Data load failed due to bad record"))
+ }
+
+ test("TC_007-test SET property IS__EMPTY_DATA_BAD_RECORD=FALSE") {
+ sql("drop table if exists emptyColumnValues")
+ sql("RESET")
+ sql("SET carbon.options.bad.records.logger.enable=true")
+ sql("SET carbon.options.is.empty.data.badrecord=false")
+ sql(
+ """CREATE TABLE IF NOT EXISTS emptyColumnValues(ID int,CUST_ID int,cust_name string) STORED
+ BY 'org.apache.carbondata.format'
+ """)
+ sql(
+ s"""LOAD DATA LOCAL INPATH '$resourcesPath/Data/badrecord/doubleqoute.csv' into table
+ |emptyColumnValues options('SINGLE_PASS'='true')"""
+ .stripMargin)
+ checkAnswer(
+ s"""select count(*) from emptyColumnValues""",
+ Seq(Row(1)), "SetParameterTestCase-TC_007-test SET property IS__EMPTY_DATA_BAD_RECORD=FALSE")
+ }
+
+ test("TC_008-test SET property IS__EMPTY_DATA_BAD_RECORD=TRUE") {
+ sql("drop table if exists emptyColumnValues")
+ sql("SET carbon.options.bad.records.logger.enable=true")
+ sql("SET carbon.options.is.empty.data.badrecord=true")
+ sql("SET carbon.options.bad.records.action=redirect")
+ sql(s"SET carbon.options.bad.record.path=$resourcesPath")
+ sql(
+ """CREATE TABLE IF NOT EXISTS emptyColumnValues(ID int,CUST_ID int,cust_name string) STORED
+ BY 'org.apache.carbondata.format'
+ """)
+ sql(
+ s"""LOAD DATA LOCAL INPATH '$resourcesPath/Data/badrecord/doubleqoute.csv' into table
+ |emptyColumnValues options('SINGLE_PASS'='true')"""
+ .stripMargin)
+ checkAnswer(
+ s"""select count(*) from emptyColumnValues""",
+ Seq(Row(1)), "SetParameterTestCase-TC_008-test SET property IS__EMPTY_DATA_BAD_RECORD=TRUE")
+ }
+
+ test("TC_009-test SET property for Single Pass") {
+ sql("drop table if exists carbon_table_single_pass")
+ sql("SET carbon.options.single.pass=true")
+ sql(
+ "create table carbon_table_single_pass(empno int, empname String, designation String, doj " +
+ "Timestamp,workgroupcategory int, workgroupcategoryname String, deptno int, deptname " +
+ "String," +
+ "projectcode int, projectjoindate Timestamp, projectenddate Timestamp,attendance int," +
+ "utilization int,salary int) STORED BY 'org.apache.carbondata.format'")
+ sql(
+ s"""LOAD DATA LOCAL INPATH '$resourcesPath/Data/sortcolumns/data.csv' into table
+ |carbon_table_single_pass options('ALL_DICTIONARY_PATH '='$resourcesPath','FILEHEADER'='empno,empname,designation,doj,workgroupcategory,workgroupcategoryname,deptno,deptname,projectcode,projectjoindate,projectenddate,attendance,utilization,salary')"""
+ .stripMargin)
+ sql(s"""select * from carbon_table_single_pass""")
+ }
+
+ test("TC_010-test SET property for Sort Scope-Local_Sort") {
+ sql("drop table if exists carbon_table")
+ sql("SET carbon.options.bad.records.logger.enable=true")
+ sql("SET carbon.options.sort.scope=local_sort")
+ sql(
+ "create table carbon_table(empno int, empname String, designation String, doj Timestamp," +
+ "workgroupcategory int) STORED BY 'org.apache.carbondata.format'")
+ checkExistence(sql("DESC FORMATTED carbon_table"), true, "LOCAL_SORT")
+ val sortscope=sql("DESC FORMATTED carbon_table").collect().filter(_.getString(1).trim.equals("LOCAL_SORT"))
+ assertResult(1)(sortscope.length)
+ assertResult("LOCAL_SORT")(sortscope(0).getString(1).trim)
+ }
+
+ test("TC_011-test SET property to Enable Unsafe Sort") {
+ sql("drop table if exists carbon_table")
+ sql("SET carbon.options.bad.records.logger.enable=true")
+ sql("SET enable.unsafe.sort=true")
+ sql(
+ "create table carbon_table(empno int, empname String, designation String, doj Timestamp," +
+ "workgroupcategory int, workgroupcategoryname String, deptno int, deptname String," +
+ "projectcode int, projectjoindate Timestamp, projectenddate Timestamp,attendance int," +
+ "utilization int,salary int) STORED BY 'org.apache.carbondata.format'")
+ sql(
+ s"""LOAD DATA LOCAL INPATH '$resourcesPath/Data/sortcolumns/data.csv' into table
+ |carbon_table options('FILEHEADER'='empno,empname,designation,doj,workgroupcategory,workgroupcategoryname,deptno,deptname,projectcode,projectjoindate,projectenddate,attendance,utilization,salary')"""
+ .stripMargin)
+ sql(s"""select * from carbon_table""")
--- End diff --
remove this line
---