[jira] [Commented] (DRILL-7283) Unit Tests for UDFs in Contrib folder failing
[ https://issues.apache.org/jira/browse/DRILL-7283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16865868#comment-16865868 ] Volodymyr Vysotskyi commented on DRILL-7283: [~cgivre], did you have a chance to check it or try running these tests after the project is built? > Unit Tests for UDFs in Contrib folder failing > - > > Key: DRILL-7283 > URL: https://issues.apache.org/jira/browse/DRILL-7283 > Project: Apache Drill > Issue Type: Bug > Components: Functions - Drill >Affects Versions: 1.17.0 >Reporter: Charles Givre >Priority: Critical > > The unit tests for UDFs in the contrib/ folder seem to be failing. It would > seem that the ClusterFixture doesn't seem to be missing configuration > variables. I've set a series of them and it keeps asking me for more. > > The errors are shown below: > {{java.lang.IllegalStateException: Cluster fixture setup failed}}{{at > org.apache.drill.test.ClusterFixture.(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.udfs.TestCryptoFunctions.setup(TestCryptoFunctions.java:40)}} > {{Caused by: com.typesafe.config.ConfigException$Missing: No configuration > setting found for key 'drill.exec.profiles'}} > {{ at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:115)}} > {{ at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:138)}} > {{ 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.getBoolean(SimpleConfig.java:165)}} > {{ at > org.apache.drill.common.config.NestedConfig.getBoolean(NestedConfig.java:86)}} > {{ at > org.apache.drill.common.config.DrillConfig.getBoolean(DrillConfig.java:44)}} > {{ at > org.apache.drill.common.config.NestedConfig.getBoolean(NestedConfig.java:86)}} > {{ at > org.apache.drill.common.config.DrillConfig.getBoolean(DrillConfig.java:44)}} > {{ at org.apache.drill.exec.server.Drillbit.(Drillbit.java:186)}} > {{ at org.apache.drill.exec.server.Drillbit.(Drillbit.java:140)}} > {{ at > org.apache.drill.test.ClusterFixture.startDrillbits(ClusterFixture.java:228)}} > {{ at org.apache.drill.test.ClusterFixture.(ClusterFixture.java:146)}} > {{ ... 3 more}} > > The GIS unit tests fail with the error below: > {{com.typesafe.config.ConfigException$Missing: No configuration setting found > for key 'drill.exec.options'}}{{at > com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:115)}} > {{ at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:138)}} > {{ 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.getBoolean(SimpleConfig.java:165)}} > {{ at > org.apache.drill.common.config.NestedConfig.getBoolean(NestedConfig.java:86)}} > {{ at > org.apache.drill.common.config.DrillConfig.getBoolean(DrillConfig.java:44)}} > {{ at > org.apache.drill.exec.server.options.SystemOptionManager.populateDefaultValues(SystemOptionManager.java:475)}} > {{ at > org.apache.drill.exec.server.options.SystemOptionManager.(SystemOptionManager.java:331)}} > {{ at > org.apache.drill.exec.server.options.SystemOptionManager.(SystemOptionManager.java:321)}} > {{ at org.apache.drill.exec.ExecTest.setupOptionManager(ExecTest.java:76)}} > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (DRILL-7283) Unit Tests for UDFs in Contrib folder failing
[ https://issues.apache.org/jira/browse/DRILL-7283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16865872#comment-16865872 ] Charles Givre commented on DRILL-7283: -- Yeah, my bad... > Unit Tests for UDFs in Contrib folder failing > - > > Key: DRILL-7283 > URL: https://issues.apache.org/jira/browse/DRILL-7283 > Project: Apache Drill > Issue Type: Bug > Components: Functions - Drill >Affects Versions: 1.17.0 >Reporter: Charles Givre >Priority: Critical > > The unit tests for UDFs in the contrib/ folder seem to be failing. It would > seem that the ClusterFixture doesn't seem to be missing configuration > variables. I've set a series of them and it keeps asking me for more. > > The errors are shown below: > {{java.lang.IllegalStateException: Cluster fixture setup failed}}{{at > org.apache.drill.test.ClusterFixture.(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.udfs.TestCryptoFunctions.setup(TestCryptoFunctions.java:40)}} > {{Caused by: com.typesafe.config.ConfigException$Missing: No configuration > setting found for key 'drill.exec.profiles'}} > {{ at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:115)}} > {{ at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:138)}} > {{ 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.getBoolean(SimpleConfig.java:165)}} > {{ at > org.apache.drill.common.config.NestedConfig.getBoolean(NestedConfig.java:86)}} > {{ at > org.apache.drill.common.config.DrillConfig.getBoolean(DrillConfig.java:44)}} > {{ at > org.apache.drill.common.config.NestedConfig.getBoolean(NestedConfig.java:86)}} > {{ at > org.apache.drill.common.config.DrillConfig.getBoolean(DrillConfig.java:44)}} > {{ at org.apache.drill.exec.server.Drillbit.(Drillbit.java:186)}} > {{ at org.apache.drill.exec.server.Drillbit.(Drillbit.java:140)}} > {{ at > org.apache.drill.test.ClusterFixture.startDrillbits(ClusterFixture.java:228)}} > {{ at org.apache.drill.test.ClusterFixture.(ClusterFixture.java:146)}} > {{ ... 3 more}} > > The GIS unit tests fail with the error below: > {{com.typesafe.config.ConfigException$Missing: No configuration setting found > for key 'drill.exec.options'}}{{at > com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:115)}} > {{ at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:138)}} > {{ 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.getBoolean(SimpleConfig.java:165)}} > {{ at > org.apache.drill.common.config.NestedConfig.getBoolean(NestedConfig.java:86)}} > {{ at > org.apache.drill.common.config.DrillConfig.getBoolean(DrillConfig.java:44)}} > {{ at > org.apache.drill.exec.server.options.SystemOptionManager.populateDefaultValues(SystemOptionManager.java:475)}} > {{ at > org.apache.drill.exec.server.options.SystemOptionManager.(SystemOptionManager.java:331)}} > {{ at > org.apache.drill.exec.server.options.SystemOptionManager.(SystemOptionManager.java:321)}} > {{ at org.apache.drill.exec.ExecTest.setupOptionManager(ExecTest.java:76)}} > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Closed] (DRILL-7283) Unit Tests for UDFs in Contrib folder failing
[ https://issues.apache.org/jira/browse/DRILL-7283?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Charles Givre closed DRILL-7283. Resolution: Not A Problem > Unit Tests for UDFs in Contrib folder failing > - > > Key: DRILL-7283 > URL: https://issues.apache.org/jira/browse/DRILL-7283 > Project: Apache Drill > Issue Type: Bug > Components: Functions - Drill >Affects Versions: 1.17.0 >Reporter: Charles Givre >Priority: Critical > > The unit tests for UDFs in the contrib/ folder seem to be failing. It would > seem that the ClusterFixture doesn't seem to be missing configuration > variables. I've set a series of them and it keeps asking me for more. > > The errors are shown below: > {{java.lang.IllegalStateException: Cluster fixture setup failed}}{{at > org.apache.drill.test.ClusterFixture.(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.udfs.TestCryptoFunctions.setup(TestCryptoFunctions.java:40)}} > {{Caused by: com.typesafe.config.ConfigException$Missing: No configuration > setting found for key 'drill.exec.profiles'}} > {{ at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:115)}} > {{ at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:138)}} > {{ 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.getBoolean(SimpleConfig.java:165)}} > {{ at > org.apache.drill.common.config.NestedConfig.getBoolean(NestedConfig.java:86)}} > {{ at > org.apache.drill.common.config.DrillConfig.getBoolean(DrillConfig.java:44)}} > {{ at > org.apache.drill.common.config.NestedConfig.getBoolean(NestedConfig.java:86)}} > {{ at > org.apache.drill.common.config.DrillConfig.getBoolean(DrillConfig.java:44)}} > {{ at org.apache.drill.exec.server.Drillbit.(Drillbit.java:186)}} > {{ at org.apache.drill.exec.server.Drillbit.(Drillbit.java:140)}} > {{ at > org.apache.drill.test.ClusterFixture.startDrillbits(ClusterFixture.java:228)}} > {{ at org.apache.drill.test.ClusterFixture.(ClusterFixture.java:146)}} > {{ ... 3 more}} > > The GIS unit tests fail with the error below: > {{com.typesafe.config.ConfigException$Missing: No configuration setting found > for key 'drill.exec.options'}}{{at > com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:115)}} > {{ at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:138)}} > {{ 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.getBoolean(SimpleConfig.java:165)}} > {{ at > org.apache.drill.common.config.NestedConfig.getBoolean(NestedConfig.java:86)}} > {{ at > org.apache.drill.common.config.DrillConfig.getBoolean(DrillConfig.java:44)}} > {{ at > org.apache.drill.exec.server.options.SystemOptionManager.populateDefaultValues(SystemOptionManager.java:475)}} > {{ at > org.apache.drill.exec.server.options.SystemOptionManager.(SystemOptionManager.java:331)}} > {{ at > org.apache.drill.exec.server.options.SystemOptionManager.(SystemOptionManager.java:321)}} > {{ at org.apache.drill.exec.ExecTest.setupOptionManager(ExecTest.java:76)}} > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (DRILL-7293) Convert the regex ("log") plugin to use EVF
[ https://issues.apache.org/jira/browse/DRILL-7293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16866245#comment-16866245 ] ASF GitHub Bot commented on DRILL-7293: --- paul-rogers commented on pull request #1807: DRILL-7293: Convert the regex ("log") plugin to use EVF URL: https://github.com/apache/drill/pull/1807#discussion_r294614546 ## File path: exec/java-exec/src/main/java/org/apache/drill/exec/store/log/README.md ## @@ -143,6 +143,14 @@ cardinality. You may find it helpful to specify the regex and column names via the plugin config, types via the `CREATE SCHEMA` command. +## Table Functions + +Log files come in many forms. It would be very convenient to use Drill table Review comment: As I recall, Drill does not have a good way to deal with changes to the schema of a storage plugin. Some time back, I remember struggling to understand why my server would not start, only to eventually learn that some plugin or other changed its config and so Drill failed when trying to load the existing config from ZK. Has this been fixed? If we change schema to a string, we'd need to run code to convert old configs. Also, we'd have the problem of what to do with the type property. We could not easily convert an existing config into a table schema. Given these uncertainties, my thought was to leave the config alone and try to fit in the provided schema as best we can on top of the existing config. Can you think of a better approach? This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Convert the regex ("log") plugin to use EVF > --- > > Key: DRILL-7293 > URL: https://issues.apache.org/jira/browse/DRILL-7293 > Project: Apache Drill > Issue Type: Improvement >Affects Versions: 1.16.0 >Reporter: Paul Rogers >Assignee: Paul Rogers >Priority: Major > Fix For: 1.17.0 > > > The "log" plugin (which uses a regex to define the row format) is the subject > of Chapter 12 of the Learning Apache Drill book (though the version in the > book is simpler than the one in the master branch.) > The recently-completed "Enhanced Vector Framework" (EVF, AKA the "row set > framework") gives Drill control over the size of batches created by readers, > and allows readers to use the recently-added provided schema mechanism. > We wish to use the log reader as an example for how to convert a Drill format > plugin to use the EVF so that other developers can convert their own plugins. > This PR provides the first set of log plugin changes to enable us to publish > a tutorial on the EVF. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (DRILL-7293) Convert the regex ("log") plugin to use EVF
[ https://issues.apache.org/jira/browse/DRILL-7293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16866246#comment-16866246 ] ASF GitHub Bot commented on DRILL-7293: --- paul-rogers commented on pull request #1807: DRILL-7293: Convert the regex ("log") plugin to use EVF URL: https://github.com/apache/drill/pull/1807#discussion_r294614546 ## File path: exec/java-exec/src/main/java/org/apache/drill/exec/store/log/README.md ## @@ -143,6 +143,14 @@ cardinality. You may find it helpful to specify the regex and column names via the plugin config, types via the `CREATE SCHEMA` command. +## Table Functions + +Log files come in many forms. It would be very convenient to use Drill table Review comment: As I recall, Drill does not have a good way to deal with changes to the schema of a storage plugin. Some time back, I remember struggling to understand why my server would not start, only to eventually learn that some plugin or other changed its config and so Drill failed when trying to load the existing config from ZK. Has this been fixed? If we change schema to a string, we'd need to run code to convert old configs. Also, we'd have the problem of what to do with the type property. We could not easily convert an existing config into a table schema. Given these uncertainties, my thought was to leave the config alone and try to fit in the provided schema as best we can on top of the existing config. Can you suggest a better approach? This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Convert the regex ("log") plugin to use EVF > --- > > Key: DRILL-7293 > URL: https://issues.apache.org/jira/browse/DRILL-7293 > Project: Apache Drill > Issue Type: Improvement >Affects Versions: 1.16.0 >Reporter: Paul Rogers >Assignee: Paul Rogers >Priority: Major > Fix For: 1.17.0 > > > The "log" plugin (which uses a regex to define the row format) is the subject > of Chapter 12 of the Learning Apache Drill book (though the version in the > book is simpler than the one in the master branch.) > The recently-completed "Enhanced Vector Framework" (EVF, AKA the "row set > framework") gives Drill control over the size of batches created by readers, > and allows readers to use the recently-added provided schema mechanism. > We wish to use the log reader as an example for how to convert a Drill format > plugin to use the EVF so that other developers can convert their own plugins. > This PR provides the first set of log plugin changes to enable us to publish > a tutorial on the EVF. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (DRILL-7293) Convert the regex ("log") plugin to use EVF
[ https://issues.apache.org/jira/browse/DRILL-7293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16866249#comment-16866249 ] ASF GitHub Bot commented on DRILL-7293: --- paul-rogers commented on pull request #1807: DRILL-7293: Convert the regex ("log") plugin to use EVF URL: https://github.com/apache/drill/pull/1807#discussion_r294615119 ## File path: exec/java-exec/src/main/java/org/apache/drill/exec/store/log/README.md ## @@ -129,19 +129,62 @@ Drill 1.16 introduced the `CREATE SCHEMA` command to allow you to define the schema for your table. This plugin was created earlier. Here is how the two schema systems interact. +### Plugin Config Provides Regex and Field Names + +The first way to use the provided schema is just to define column types. +In this use case, the plugin config provides the physical layout (pattern +and column names), the provided schema provides data types and default +values (for missing columns.) + +In this case: + * The plugin config must provide the regex. -* The plugin config should provide the list of column names. (If not provided, +* The plugin config provides the list of column names. (If not provided, the names will be `field_1`, `field_2`, etc.) -* The plugin config can provide a type for each field. Text data from the regex -is converted to a nullable column of the specified type. -* The table can provide a schema via `CREATE SCHEMA`. If so, the column names -in the schema must match those in the plugin config. The types in the provided -schema are used instead of those specified in the plugin config. The schema +* The plugin config should not provide column types. +* The table provides a schema via `CREATE SCHEMA`. Column names +in the schema must match those in the plugin config by name. The types in the +provided schema are used instead of those specified in the plugin config. The schema allows you to specify the data type, and either nullable or `not null` cardinality. -You may find it helpful to specify the regex and column names via the plugin -config, types via the `CREATE SCHEMA` command. +### Provided Schema Provides The Regex + +Another way to use the provided schema is to define an empty plugin config; don't +even provide the regex. Use table properties to define the regex (and the maximum +error count, if desired.) + +In this case: + +* Set the table property `drill.regex.regex` to the desired pattern. Review comment: Agree, it is pretty awkward. The saving grace is that I did, I believe, change "regex" to "logRegex" as you suggested. That is, the second item is the plugin "type" name. When we worked on the text reader, I had first tried to choose good names for the third item. You rightly pointed out that it might be easier to remember if we simply use the existing config field names, which is what I did here. So, even if the names are awkward, the pattern we've evolved is: ``` drill.. ``` That said, I'm open to suggestions if there is a better way to handle these names; now is the time to make improvements before folks deploy schema files with the names. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Convert the regex ("log") plugin to use EVF > --- > > Key: DRILL-7293 > URL: https://issues.apache.org/jira/browse/DRILL-7293 > Project: Apache Drill > Issue Type: Improvement >Affects Versions: 1.16.0 >Reporter: Paul Rogers >Assignee: Paul Rogers >Priority: Major > Fix For: 1.17.0 > > > The "log" plugin (which uses a regex to define the row format) is the subject > of Chapter 12 of the Learning Apache Drill book (though the version in the > book is simpler than the one in the master branch.) > The recently-completed "Enhanced Vector Framework" (EVF, AKA the "row set > framework") gives Drill control over the size of batches created by readers, > and allows readers to use the recently-added provided schema mechanism. > We wish to use the log reader as an example for how to convert a Drill format > plugin to use the EVF so that other developers can convert their own plugins. > This PR provides the first set of log plugin changes to enable us to publish > a tutorial on the EVF. -- This message was sent by Atlassian JIRA (v7.6.3#76005)