
Subscribe to Breezeandmoon

Subscribe to Breezeandmoon
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers


空间和时间当前支持三种类型的视图。
标准 - 标准视图是基于 SQL 语句执行结果的虚拟表。标准视图不保存 SQL 语句生成的数据。当您查询标准视图时,会执行底层 SQL 语句,并将结果显示为真实的表。
物化- 与标准视图不同,物化视图保存执行基础查询的结果。物化视图可以按用户定义的时间间隔刷新,每次执行基础查询时都会保存新数据。
参数化- 参数化视图类似于标准视图,不同之处在于它可以采用针对视图执行查询时提供的附加参数。
视图是使用与在空间和时间中创建表相同的配置资源 (DDL)端点创建的。
至少,您必须为正在创建视图的资源 ID 提供具有 CREATE 权限的 Biscuit。如果您的查询运行所针对的基础表是使用权限创建的,则此方法有效。如果您的视图将查询的表是,那么您还需要为基础表提供具有适当权限的 Biscuit 。access_type=public_readaccess_type=permissionedSELECT
创建标准视图
cURL
curl -i --request POST \
--url "https://<API_URL>/v1/sql/ddl" \\
--header "accept: application/json" \\
--header "authorization: Bearer <ACCESS_TOKEN>" \\
--header "content-type: application/json" \\
--data '
{
"biscuits": ["EuwBCoEBCg5zeHQ6Y2Fw..."],
"sqlText": "CREATE VIEW SE_LAND.my_new_view WITH \\"public_key=<BISCUIT_PUBLIC_KEY>\\" AS SELECT \* FROM SE_LAND.ofac_eth"
}
'
下面仔细看看我们正在执行的 SQL:

视图名称为,其完整资源ID为my_new_viewSE_LAND.my_new_view
基础表是,其完整的resourceId是ofac_ethSE_LAND.ofac_eth
这是用于授予权限的密钥对的饼干公钥一侧。 也就是说,与包含此事实的饼干关联的饼干公钥:public_keycreate
sxt:capability("ddl_create", "se_land.my_new_view");
如果基础表 ( ) 是这样创建的,那么您还需要向创建命令提供一个饼干,其中包含以下事实:
sxt:capability("dql_select", "se_land.ofac_eth");
材质视图可以用几乎相同的方式创建。有一项是必需的差异,另一项是可选的。
首先,您必须告诉 SxT 您想要创建一个物化视图。这就像添加到 SQL CREATE 命令一样简单,如下所示:MATERIALIZED

下一个标志是可选的,允许您设置查询的时间(以分钟为单位)。刷新间隔定义了后端执行查询的频率。refresh_interval

目前,物化视图被硬编码为每天刷新一次。在短期内,这将更改为使用刷新间隔,因此强烈建议设置为所需的长度(或 1440 = 分钟每天)
材质视图的 access_type 直接从基础表派生,不需要在 create 语句中指定。
指定的饼干公钥仅用于针对物化视图的 DDL(创建和删除)操作。
参数化视图与标准视图类似,不同之处在于它可以采用针对视图执行查询时提供的附加参数。因此,当我们创建视图时,我们也会定义参数。
cURL
curl --location '/v1/sql/ddl' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer ACCESS_TOKEN' \ --data '{ "biscuits": \[ "<BISCUIT-WITH-CREATE-PERMS>" \], "sqlText": "CREATE PARAMETERIZED VIEW se_land.my_new_para_view WITH \"public_key=\" AS SELECT * FROM se_land.dnft_42 WHERE POINTS>@param1" }' 我们来看看SQL:

如您所见,我们用 指定参数。@param1
查询视图的方式与查询任何其他表的方式相同。
标准
SELECT * FROM SE_LAND.my_new_view
物化
SELECT * FROM SE_LAND.my_new_mat_view
参数化
空间和时间当前支持三种类型的视图。
标准 - 标准视图是基于 SQL 语句执行结果的虚拟表。标准视图不保存 SQL 语句生成的数据。当您查询标准视图时,会执行底层 SQL 语句,并将结果显示为真实的表。
物化- 与标准视图不同,物化视图保存执行基础查询的结果。物化视图可以按用户定义的时间间隔刷新,每次执行基础查询时都会保存新数据。
参数化- 参数化视图类似于标准视图,不同之处在于它可以采用针对视图执行查询时提供的附加参数。
视图是使用与在空间和时间中创建表相同的配置资源 (DDL)端点创建的。
至少,您必须为正在创建视图的资源 ID 提供具有 CREATE 权限的 Biscuit。如果您的查询运行所针对的基础表是使用权限创建的,则此方法有效。如果您的视图将查询的表是,那么您还需要为基础表提供具有适当权限的 Biscuit 。access_type=public_readaccess_type=permissionedSELECT
创建标准视图
cURL
curl -i --request POST \
--url "https://<API_URL>/v1/sql/ddl" \\
--header "accept: application/json" \\
--header "authorization: Bearer <ACCESS_TOKEN>" \\
--header "content-type: application/json" \\
--data '
{
"biscuits": ["EuwBCoEBCg5zeHQ6Y2Fw..."],
"sqlText": "CREATE VIEW SE_LAND.my_new_view WITH \\"public_key=<BISCUIT_PUBLIC_KEY>\\" AS SELECT \* FROM SE_LAND.ofac_eth"
}
'
下面仔细看看我们正在执行的 SQL:

视图名称为,其完整资源ID为my_new_viewSE_LAND.my_new_view
基础表是,其完整的resourceId是ofac_ethSE_LAND.ofac_eth
这是用于授予权限的密钥对的饼干公钥一侧。 也就是说,与包含此事实的饼干关联的饼干公钥:public_keycreate
sxt:capability("ddl_create", "se_land.my_new_view");
如果基础表 ( ) 是这样创建的,那么您还需要向创建命令提供一个饼干,其中包含以下事实:
sxt:capability("dql_select", "se_land.ofac_eth");
材质视图可以用几乎相同的方式创建。有一项是必需的差异,另一项是可选的。
首先,您必须告诉 SxT 您想要创建一个物化视图。这就像添加到 SQL CREATE 命令一样简单,如下所示:MATERIALIZED

下一个标志是可选的,允许您设置查询的时间(以分钟为单位)。刷新间隔定义了后端执行查询的频率。refresh_interval

目前,物化视图被硬编码为每天刷新一次。在短期内,这将更改为使用刷新间隔,因此强烈建议设置为所需的长度(或 1440 = 分钟每天)
材质视图的 access_type 直接从基础表派生,不需要在 create 语句中指定。
指定的饼干公钥仅用于针对物化视图的 DDL(创建和删除)操作。
参数化视图与标准视图类似,不同之处在于它可以采用针对视图执行查询时提供的附加参数。因此,当我们创建视图时,我们也会定义参数。
cURL
curl --location '/v1/sql/ddl' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer ACCESS_TOKEN' \ --data '{ "biscuits": \[ "<BISCUIT-WITH-CREATE-PERMS>" \], "sqlText": "CREATE PARAMETERIZED VIEW se_land.my_new_para_view WITH \"public_key=\" AS SELECT * FROM se_land.dnft_42 WHERE POINTS>@param1" }' 我们来看看SQL:

如您所见,我们用 指定参数。@param1
查询视图的方式与查询任何其他表的方式相同。
标准
SELECT * FROM SE_LAND.my_new_view
物化
SELECT * FROM SE_LAND.my_new_mat_view
参数化
SELECT * FROM SE_LAND.my_new_para_view('param1=10','param2=20')
请注意,应该是完整的资源 ID。例如,VIEW_NAMESE_LAND.my_new_para_view
DROP VIEW <VIEW_NAME>
DROP MATERIALIZED VIEW <VIEW_NAME>
DROP PARAMETERIZED VIEW <VIEW_NAME>
SELECT * FROM SE_LAND.my_new_para_view('param1=10','param2=20')
请注意,应该是完整的资源 ID。例如,VIEW_NAMESE_LAND.my_new_para_view
DROP VIEW <VIEW_NAME>
DROP MATERIALIZED VIEW <VIEW_NAME>
DROP PARAMETERIZED VIEW <VIEW_NAME>
No activity yet