DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
| Code Block |
|---|
# No additional syntax will be added. If you need to authorize privilege under other datasource, you need to switch ds first. # During initialization, you can use the admin account to switch to the new ds to create the permissions of the initial account. grant all on db.tbl to user@%; |
3-Basic data structure
| Code Block |
|---|
+---------------------+
+--->|HMSExternalDataSource|
| +---------------------+
+-----------------------+ | +---------------------+
|ExternalDataSource | +--->|EsExternalDataSource |
| +---+ +---------------------+
+-----> listDatabaseNames()| | +---------------------++
| | tableExists() | +--->|OdbcExternalDataSource|
+-------------------+ | | getTableSchema() | | +----------------------+
| DataSourceIf | | | ... | | +----------------------+
| +----+ +-----------------------+ +--->|HttpExternalDataSource|
| getDatabase() | +----------------------+
| listDatabases()+----+ +-----------------------+
| ... | | |InternalDataSource |
+-------------------+ | | |
+-----> self-managed meta |
| |
+-----------------------+
+-------------------+ +-----------------------+
| DatabaseIf +---------->ExternalDatabase |
| | +-----------------------+
| getTable() |
| listTable() | +-----------------------+
| ... +---------->Database |
+-------------------+ +-----------------------+
+-------------------+ +-----------------------+
| TableIf +---------->ExternalTable |
| | +-----------------------+ +----------+
| getColumn() | +---->|OlapTable |
| getSchema() | +-----------------------+ | +----------+
| ... +---------->Table +---+ +----------+
+-------------------+ +-----------------------+ +---->|OdbcTable |
+----------+ |
Interfaces:
- DataSourceIf: provide getDatabase(), listDatabases(), etc.
- DatabaseIf: provide getTable(), listTables(), etc.
- TableIf: provide getColumn(), getSchema(), etc.
Classes:
- InternalDataSource implements DataSourceIf: contains all self-managed metadata.
- ExternalDataSource implements DataSourceIf: contains all not-self-managed metadata which should be got from external data source.
- HMSExternalDataSource: hive metastore compatible data sources.
- EsExternalDataSource: elasticsearch
- OdbcExternalDataSource: odbc compatible data sources
- HttpExternalDataSource: for http api
- ...
- ExternalDatabase implements DatabaseIf: database got from external data source.
- Database implements DatabaseIf: the self-managed databases.
- ExternalTable implements TableIf: table got from external data source.
- Table implements TableIf: the self-managed tables
- OlapTable
- MysqlTable
- OdbcTable
- ...
- ExternalScanNode: for external table scan task.
- MetaObjCache: To cache and manage all external meta objects.
Scheduling
- Define basic data structures, including DataSource interface, ExternalScanNode, ExternalTable, etc.
- POC: Access to the hive metastore data source using these basic data structure.
- Support dynamic loading user defined datasource using SPI.
- SQL parser: Support datasource qualifier.
- Privilege: Support privilege management for datasource level.
- Metadata Cache
...