Class GoogleSheetsStoragePlugin
java.lang.Object
org.apache.drill.exec.store.AbstractStoragePlugin
org.apache.drill.exec.store.googlesheets.GoogleSheetsStoragePlugin
- All Implemented Interfaces:
AutoCloseable,SchemaFactory,StoragePlugin
-
Field Summary
Fields inherited from class org.apache.drill.exec.store.AbstractStoragePlugin
contextFields inherited from interface org.apache.drill.exec.store.SchemaFactory
DEFAULT_WS_NAME -
Constructor Summary
ConstructorsConstructorDescriptionGoogleSheetsStoragePlugin(GoogleSheetsStoragePluginConfig configuration, DrillbitContext context, String name) -
Method Summary
Modifier and TypeMethodDescriptionMethod returns a Jackson serializable object that extends a StoragePluginConfig.com.google.api.client.util.store.DataStore<com.google.api.client.auth.oauth2.StoredCredential> getDataStore(String username) com.google.api.services.drive.DrivegetDriveService(String queryUser) This method gets (and caches) the Google Drive Service needed for mapping Google Sheet names to file tokens.Set<? extends org.apache.calcite.plan.RelOptRule> getOptimizerRules(OptimizerRulesContext optimizerContext, PlannerPhase phase) An implementation of this method will return one or more specialized rules that Drill query optimizer can leverage in physical space.getPhysicalScan(String userName, JSONOptions selection) Get the physical scan operator for the particular GroupScan (read) node.getPhysicalScan(String userName, JSONOptions selection, List<SchemaPath> columns) Get the physical scan operator for the particular GroupScan (read) node.getPhysicalScan(String userName, JSONOptions selection, List<SchemaPath> columns, SessionOptionManager options, MetadataProviderManager metadataProviderManager) Get the physical scan operator for the particular GroupScan (read) node.getPhysicalScan(String userName, JSONOptions selection, SessionOptionManager options) Get the physical scan operator for the particular GroupScan (read) node.getPhysicalScan(String userName, JSONOptions selection, SessionOptionManager options, MetadataProviderManager metadataProviderManager) Get the physical scan operator for the particular GroupScan (read) node.com.google.api.services.sheets.v4.SheetsgetSheetsService(String queryUser) This method gets (and caches) the Google Service needed for API calls.voidinitializeOauthTokenTable(SchemaConfig schemaConfig) voidThis function is only used for testing and creates the necessary token tables.voidregisterSchemas(SchemaConfig schemaConfig, org.apache.calcite.schema.SchemaPlus parent) Register the schemas provided by this SchemaFactory implementation under the given parent schema.booleanIndicates if Drill can insert to a table to this plugin.booleanIndicates if Drill can write a table to this format (e.g.Methods inherited from class org.apache.drill.exec.store.AbstractStoragePlugin
close, getContext, getFormatPlugin, getName, getPhysicalScan, onDisabled, onEnabled, start, supportsRead, toString
-
Constructor Details
-
GoogleSheetsStoragePlugin
public GoogleSheetsStoragePlugin(GoogleSheetsStoragePluginConfig configuration, DrillbitContext context, String name)
-
-
Method Details
-
initializeOauthTokenTable
-
getDataStore
public com.google.api.client.util.store.DataStore<com.google.api.client.auth.oauth2.StoredCredential> getDataStore(String username) -
registerSchemas
Description copied from interface:SchemaFactoryRegister the schemas provided by this SchemaFactory implementation under the given parent schema.- Parameters:
schemaConfig- Configuration for schema objects.parent- Reference to parent schema.
-
getTokenTable
-
getPhysicalScan
public AbstractGroupScan getPhysicalScan(String userName, JSONOptions selection, SessionOptionManager options) throws IOException Description copied from interface:StoragePluginGet the physical scan operator for the particular GroupScan (read) node.- Specified by:
getPhysicalScanin interfaceStoragePlugin- Overrides:
getPhysicalScanin classAbstractStoragePlugin- Parameters:
userName- User whom to impersonate when reading the contents as part of Scan.selection- The configured storage engine specific selection.options- (optional) session options- Returns:
- The physical scan operator for the particular GroupScan (read) node.
- Throws:
IOException
-
getPhysicalScan
public AbstractGroupScan getPhysicalScan(String userName, JSONOptions selection, SessionOptionManager options, MetadataProviderManager metadataProviderManager) throws IOException Description copied from interface:StoragePluginGet the physical scan operator for the particular GroupScan (read) node.- Specified by:
getPhysicalScanin interfaceStoragePlugin- Overrides:
getPhysicalScanin classAbstractStoragePlugin- Parameters:
userName- User whom to impersonate when reading the contents as part of Scan.selection- The configured storage engine specific selection.options- (optional) session optionsmetadataProviderManager- manager for handling metadata providers- Returns:
- The physical scan operator for the particular GroupScan (read) node.
- Throws:
IOException
-
getPhysicalScan
public AbstractGroupScan getPhysicalScan(String userName, JSONOptions selection, List<SchemaPath> columns) throws IOException Description copied from interface:StoragePluginGet the physical scan operator for the particular GroupScan (read) node.- Specified by:
getPhysicalScanin interfaceStoragePlugin- Overrides:
getPhysicalScanin classAbstractStoragePlugin- Parameters:
userName- User whom to impersonate when reading the contents as part of Scan.selection- The configured storage engine specific selection.columns- (optional) The list of column names to scan from the data source.- Returns:
- The physical scan operator for the particular GroupScan (read) node.
- Throws:
IOException
-
getPhysicalScan
Description copied from interface:StoragePluginGet the physical scan operator for the particular GroupScan (read) node.- Specified by:
getPhysicalScanin interfaceStoragePlugin- Overrides:
getPhysicalScanin classAbstractStoragePlugin- Parameters:
userName- User whom to impersonate when when reading the contents as part of Scan.selection- The configured storage engine specific selection.- Returns:
- The physical scan operator for the particular GroupScan (read) node.
- Throws:
IOException
-
getPhysicalScan
public AbstractGroupScan getPhysicalScan(String userName, JSONOptions selection, List<SchemaPath> columns, SessionOptionManager options, MetadataProviderManager metadataProviderManager) throws IOException Description copied from interface:StoragePluginGet the physical scan operator for the particular GroupScan (read) node.- Specified by:
getPhysicalScanin interfaceStoragePlugin- Overrides:
getPhysicalScanin classAbstractStoragePlugin- Parameters:
userName- User whom to impersonate when reading the contents as part of Scan.selection- The configured storage engine specific selection.columns- (optional) The list of column names to scan from the data source.options- (optional) session optionsmetadataProviderManager- manager for handling metadata providers- Returns:
- The physical scan operator for the particular GroupScan (read) node.
- Throws:
IOException
-
getOptimizerRules
public Set<? extends org.apache.calcite.plan.RelOptRule> getOptimizerRules(OptimizerRulesContext optimizerContext, PlannerPhase phase) Description copied from interface:StoragePluginAn implementation of this method will return one or more specialized rules that Drill query optimizer can leverage in physical space. Otherwise, it should return an empty set.- Returns:
- an empty set or a set of plugin specific physical optimizer rules.
-
getConfig
Description copied from interface:StoragePluginMethod returns a Jackson serializable object that extends a StoragePluginConfig.- Returns:
- an extension of StoragePluginConfig
-
initializeTokenTableForTesting
public void initializeTokenTableForTesting()This function is only used for testing and creates the necessary token tables. Note that the token tables still need to be populated. -
supportsWrite
public boolean supportsWrite()Description copied from interface:StoragePluginIndicates if Drill can write a table to this format (e.g. as JSON, csv, etc.).- Specified by:
supportsWritein interfaceStoragePlugin- Overrides:
supportsWritein classAbstractStoragePlugin
-
supportsInsert
public boolean supportsInsert()Description copied from interface:StoragePluginIndicates if Drill can insert to a table to this plugin.- Specified by:
supportsInsertin interfaceStoragePlugin- Overrides:
supportsInsertin classAbstractStoragePlugin
-
getSheetsService
This method gets (and caches) the Google Service needed for API calls.- Returns:
- An authenticated
SheetsGoogle Sheets service.
-
getDriveService
This method gets (and caches) the Google Drive Service needed for mapping Google Sheet names to file tokens.- Parameters:
queryUser- AStringof the current query user.- Returns:
- A validated and authenticated
Driveinstance.
-