Hello All, 
First, a big thank you Paul for updating the log regex reader to the new EVF 
framework.  I am having a little trouble getting it to work however...
Here is my config:

,
    "ssdlog": {
      "type": "logRegex",
      "regex": 
"(\\w{3}\\s\\d{1,2}\\s\\d{4}\\s\\d{2}:\\d{2}:\\d{2})\\s+(\\w+)\\[(\\d+)\\]:\\s(.*?(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}).*?)",
      "extension": "ssdlog",
      "maxErrors": 10,
      "schema": [
          {"fieldName":"eventDate"}
          ]
    },

This works if I leave the schema null, however if I attempt to populate it, I 
get JSON errors.  This was what I originally had:

"schema" : [ {
        "fieldName" : "eventDate",
        "fieldType" : "TIMESTAMP",
        "format" : "MMM dd yyyy hh:mm:ss"
      }, {
        "fieldName" : "process_name"
      }, {
        "fieldName" : "pid",
        "fieldType" : "INT"
      }, {
        "fieldName" : "message"
      }, {
        "fieldName" : "src_ip"
      } ]

which worked.  


Also, I am working on updating a few format plugins and kept getting the 
following error when I try to run unit tests:

at org.apache.drill.test.ClusterFixture.<init>(ClusterFixture.java:152)
        at 
org.apache.drill.test.ClusterFixtureBuilder.build(ClusterFixtureBuilder.java:283)
        at org.apache.drill.test.ClusterTest.startCluster(ClusterTest.java:83)
        at 
org.apache.drill.exec.store.excel.TestExcelFormat.setup(TestExcelFormat.java:49)
Caused by: com.typesafe.config.ConfigException$Missing: No configuration 
setting found for key 'drill.exec.grace_period_ms'
        at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:115)
        at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:136)
        at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:142)
        at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:142)
        at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:150)
        at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:155)
        at 
com.typesafe.config.impl.SimpleConfig.getConfigNumber(SimpleConfig.java:170)
        at com.typesafe.config.impl.SimpleConfig.getInt(SimpleConfig.java:181)
        at 
org.apache.drill.common.config.NestedConfig.getInt(NestedConfig.java:96)
        at 
org.apache.drill.common.config.DrillConfig.getInt(DrillConfig.java:44)
        at 
org.apache.drill.common.config.NestedConfig.getInt(NestedConfig.java:96)
        at 
org.apache.drill.common.config.DrillConfig.getInt(DrillConfig.java:44)
        at org.apache.drill.exec.server.Drillbit.<init>(Drillbit.java:160)
        at org.apache.drill.exec.server.Drillbit.<init>(Drillbit.java:138)
        at 
org.apache.drill.test.ClusterFixture.startDrillbits(ClusterFixture.java:228)
        at org.apache.drill.test.ClusterFixture.<init>(ClusterFixture.java:146)
        ... 3 more


Process finished with exit code 255

I understand that I have to set the variable drill.exec.grace_period_ms, but 
I'm not sure how/where to do this.  Here is the beginning of my unit test code:

@ClassRule
public static final BaseDirTestWatcher dirTestWatcher = new 
BaseDirTestWatcher();

@BeforeClass
public static void setup() throws Exception {
  
ClusterTest.startCluster(ClusterFixture.builder(dirTestWatcher).maxParallelization(1));
  definePlugin();
}

private static void definePlugin() throws ExecutionSetupException {
  ExcelFormatConfig sampleConfig = new ExcelFormatConfig();

  // Define a temporary plugin for the "cp" storage plugin.
  Drillbit drillbit = cluster.drillbit();
  final StoragePluginRegistry pluginRegistry = 
drillbit.getContext().getStorage();
  final FileSystemPlugin plugin = (FileSystemPlugin) 
pluginRegistry.getPlugin("cp");
  final FileSystemConfig pluginConfig = (FileSystemConfig) plugin.getConfig();
  pluginConfig.getFormats().put("sample", sampleConfig);
  pluginRegistry.createOrUpdate("cp", pluginConfig, false);
}

@Test
public void testStarQuery() throws RpcException {
  String sql = "SELECT * FROM cp.`excel/test_data.xlsx` LIMIT 5";

  RowSet results = client.queryBuilder().sql(sql).rowSet();
  TupleMetadata expectedSchema = new SchemaBuilder()
          .add("id", TypeProtos.MinorType.FLOAT8, TypeProtos.DataMode.OPTIONAL)
          .add("first__name", TypeProtos.MinorType.VARCHAR, 
TypeProtos.DataMode.OPTIONAL)
          .add("last__name", TypeProtos.MinorType.VARCHAR, 
TypeProtos.DataMode.OPTIONAL)
          .add("email", TypeProtos.MinorType.VARCHAR, 
TypeProtos.DataMode.OPTIONAL)
          .add("gender", TypeProtos.MinorType.VARCHAR, 
TypeProtos.DataMode.OPTIONAL)
          .add("birthdate", TypeProtos.MinorType.VARCHAR, 
TypeProtos.DataMode.OPTIONAL)
          .add("balance", TypeProtos.MinorType.FLOAT8, 
TypeProtos.DataMode.OPTIONAL)
          .add("order__count", TypeProtos.MinorType.FLOAT8, 
TypeProtos.DataMode.OPTIONAL)
          .add("average__order", TypeProtos.MinorType.FLOAT8, 
TypeProtos.DataMode.OPTIONAL)
          .buildSchema();

  RowSet expected = new RowSetBuilder(client.allocator(), expectedSchema)
          .addRow(1.0, "Cornelia", "Matej", "cmat...@mtv.com", "Female", 
"10/31/1974", 735.29, 22.0, 33.42227273)
          .addRow(2.0, "Nydia", "Heintsch", "nheints...@godaddy.com", "Female", 
"12/10/1966", 784.14, 22.0, 35.64272727)
          .addRow(3.0, "Waiter", "Sherel", "wsher...@utexas.edu", "Male", 
"3/12/1961", 172.36, 17.0, 10.13882353)
          .addRow(4.0, "Cicely", "Lyver", "clyv...@mysql.com", "Female", 
"5/4/2000", 987.39, 6.0, 164.565)
          .addRow(5.0, "Dorie", "Doe", "dd...@spotify.com", "Female", 
"12/28/1955", 852.48, 17.0, 50.14588235)
          .build();

  new RowSetComparison(expected).verifyAndClearAll(results);
}

Thanks!
-C





Reply via email to