supportsRead -> Drill can read a table from this format (e.g. read a json
file)
supportsWrite -> Drill can write a table to this format (e.g. write a json
file)

question: -- what does StoragePluginOptimizerRule do?
  public Set<StoragePluginOptimizerRule>
getOptimizerRules(OptimizerRulesContext optimizerContext);

You can generally return an empty set for this.  You could possibly expose
one or more specialized rules for this format that the Drill query
optimizer would leverage. For example, if your plugin supported built-in
aggregations, you could expose a rule that rewrote a aggregate < your_scan
to be simply a your_scan_with_aggregation.

  public boolean isBlockSplittable()
Whether or not your format can be arbitrarily split and handle a random
start point.  For example, a csv file supports this since our reader can
start in the middle of a line and stop at the next line beyond a given
split point.  ON the flipside, Parquet can't use arbitrary split points.
JSON also doesn't support arbitrary split points since (in the most general
case), there is no way to search to the start of the next record.

question: -- what criteria makes this truth; What does this mean?
  public boolean isCompressible()

Whether this format could also be in a compression container.  For example:
csv.gz versus csv.  This is an external compression container that would be
handled outside of your format code. Parquet also wouldn't support this
since it has an internal compression scheme.


question: -- is this configuration that is specified in the "Storage"
section on the web ui/config. files?
  public StoragePluginConfig getConfig();

Yes, should be a jackson serializable object that extends
StoragePluginConfig.  What is input when configuring in the web ui.



--
Jacques Nadeau
CTO and Co-Founder, Dremio

On Sat, Aug 29, 2015 at 7:01 PM, Edmon Begoli <[email protected]> wrote:

> On *StoragePlugin*:
>
> question: -- I assume this means that sources of this storage format kind
> can be read from the original sources, correct?
>  public boolean supportsRead();
>
> question: -- Is this writing to the original source or does this mean
> creation of the table for this format?
>   public boolean supportsWrite();
>
> question: -- what does StoragePluginOptimizerRule do?
>   public Set<StoragePluginOptimizerRule>
> getOptimizerRules(OptimizerRulesContext optimizerContext);
>
> question: -- is this configuration provided on the web ui or config. files?
>   public StoragePluginConfig getConfig();
>
>
> On *EasyFormatPlugin*:
>
> question: -- what criteria makes this truth; What does this mean?
>   public boolean isBlockSplittable()
>
> question: -- what criteria makes this truth; What does this mean?
>   public boolean isCompressible()
>

Reply via email to