Thanks Mikhail! "Import" is an alternative option. It might be better.
"create external" is being widely used by different systems with similar meaning so "create" usually is ok to external data sources. -Rui On Tue, Aug 14, 2018 at 9:38 AM Mikhail Gryzykhin <[email protected]> wrote: > The idea of clarification sounds good to me. I'd appreciate that present, > when I was triaging post-commit tests. > > Do we have any terms that specify connection to external table? "CREATE" > word triggers this reaction in my brain that there will be a new table > created. Adding "EXTERNAL" would already add distinction, but adding > something more explicit for the task might be even better. > > --Mikhail > > Have feedback <http://go/migryz-feedback>? > > > On Mon, Aug 13, 2018 at 2:40 PM Rafael Fernandez <[email protected]> > wrote: > >> Strictly speaking, they are not necessarily tables either. We could also >> introduce something like CREATE EXTERNAL DATA SOURCE (a-la T-SQL >> <https://docs.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql?view=sql-server-2017>), >> if it's somehow advantageous for us to leverage access patterns or restrict >> DML statements. >> >> I think your idea of CREATE EXTERNAL TABLE is practical :) >> >> On Mon, Aug 13, 2018 at 2:12 PM Rui Wang <[email protected]> wrote: >> >>> Hi Community, >>> >>> BeamSQL allows CREATE TABLE >>> <https://beam.apache.org/documentation/dsls/sql/create-table/> >>> statements to register virtual tables from external storage systems (e.g. >>> BigQuery). >>> >>> BeamSQL is not a storage system, so any table registered by "CREATE >>> TABLE" statement is essentially equivalent to be registered by "CREATE >>> EXTERNAL TABLE", which requires the user to provide a LOCATION and BeamSQL >>> will register the table outside of current execution environment based on >>> LOCATION. >>> >>> So I propose to add EXTERNAL keyword to "CREATE TABLE" in BeamSQL to >>> help users understand they are registering tables, and BeamSQL does not >>> create non existing tables by running CREATE TABLE (at least on some >>> storage systems, if not all). >>> >>> We can make the EXTERNAL keyword either required or optional. >>> >>> If we make the EXTERNAL keyword required: >>> >>> Pros: >>> a. We can get rid of the registering table semantic on CREATE TABLE. >>> b, We keep the room that we could add CREATE TABLE back in the future if >>> we want CREATE TABLE to create, rather than not only register tables in >>> BeamSQL. >>> >>> Cons: >>> 1. CREATE TABLE syntax will not be supported so existing BeamSQL >>> pipelines which has CREATE TABLE require changes. >>> 2. It's required to type tedious EXTERNAL keyword every time, especially >>> in SQL Shell. >>> >>> If we make the EXTERNAL keyword optional, we will have reversed pros and >>> cons above. >>> >>> Any thoughts on adding EXTERNAL keyword, and make it required or >>> optional? >>> >>> >>> Thanks, >>> Rui >>> >>> >>>
