Spark SQL 发起程序连接器提供一个易于使用的基于 Java 的外部服务器库。该库定义了“包装器”外部服务器类。该类包含一个用于创建一个或多个唯一外部服务器对象的外部服务器构造函数。每个外部服务器对象都包含一个永久非本机表的目录,这些表会在会话结束后由 HDFS 上的缓存文件进行备份。Spark SQL 发起程序连接器还包含静态和实例方法,以与每个外部服务器对象中的临时和永久非本机表进行交互,并从远程表中检索元数据。
Spark SQL 引擎不具有类似于外部服务器 (Teradata) 或目录 (Presto) 的对象。因此,缺省情况下,Spark SQL 发起程序连接器在表级别运行。
外部服务器库提供的主要功能是元数据发现和管理。它不会更改用于导入、导出和解释查询的 SQL 语法。ForeignServer.sql() 和 ForeignServer.getDataSetFromSql() 用于运行 SELECT、INSERT 和 EXPLAIN 语句。使用外部服务器库时需要所有语法参数,无效或空参数会导致错误。
在使用外部服务器库的任何部分之前,必须运行 import tdqg.ForeignServer 语句。
名称 | 参数 | 说明 |
---|---|---|
构造函数 | ||
ForeignServer | 字符串链接 字符串版本 字符串名称 |
使用 QueryGrid 链接构造新的外部服务器对象。 |
ForeignServer | 字符串名称 | 还原现有的外部服务器。 |
静态方法 | ||
showForeignServers | – | 列出所有外部服务器名称。 |
dropForeignServer | 字符串名称 | 删除指定的外部服务器及其所有非本机表。 |
sql | 字符串 SQL | 运行 SQL 语句(仅 SELECT/INSERT/EXPLAIN)并显示结果中的所有行。 |
getDatasetFromSql | 字符串 SQL | 运行 SQL 语句(仅 SELECT/INSERT/EXPLAIN)并返回 Dataset<Row> 对象。 |
实例方法 | ||
showSchemas | – | 列出所有目标模式。 |
showTables | 字符串模式 | 列出目标模式下的所有表。 |
showColumns | 字符串表 | 显示由完全限定名称(例如 schema.table 或 catalog.schema.table)指定的目标表的模式。 |
show | – | 列出此外部服务器下的每个非本机表(临时或永久)及其所表示的目标表。 |
show | 字符串名称 | 显示此外部服务器下非本机表的 CREATE TABLE 语句。 这仅适用于永久非本机表,且数据库必须是名称的一部分。
|
create | 字符串表 字符串名称 |
在此外部服务器下创建表示目标表(完全限定名称)的非本机表。 要创建永久非本机表,数据库必须是名称的一部分。
|
drop | 字符串名称 | 删除此外部服务器下的非本机表。 对于永久非本机表,数据库必须是名称的一部分。
|
describe | 字符串名称 | 显示此外部服务器下非本机表的详细信息。 对于永久非本机表,数据库必须是名称的一部分。
|
setSessionOverride | 字符串值 | 设置要为会话覆盖的连接器属性。属性不区分大小写,且不可覆盖的属性将被忽略。 示例:setSessionOverride("linkbuffersize=100000, numMappers=4") |