问题标签 [polybase]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
366 浏览

sql-server - Polybase 不创建外部文件格式

我得到了很好的旧

'EXTERNAL' 附近的语法不正确。

错误。我正在做这个答案所描述的事情。但是当我遇到这个代码块时,SQL Server 会返回上述错误:

我究竟做错了什么?

我试过的

  • 已安装 Java 运行时环境(Java 8 Update 201)
  • PolyBase 安装有“PolyBase 外部数据查询服务”
  • 我启用了 PolyBase 与EXEC sp_configure 'hadoop connectivity', 4;. 我也将该选项设置为1并且7- 我仍然收到该错误
  • 使用EXEC sp_configure,我也设置'polybase enabled'1
  • 我检查了SELECT SERVERPROPERTY ('IsPolybaseInstalled') AS IsPolybaseInstalled;- 它返回1
  • 我的 TCP 已启用
  • 我的 PolyBase 正在运行:

在此处输入图像描述 设置:虚拟机 (Azure) 上的 SQL Server 2019,没有 Azure SQL Server 或 Azure DWH。

0 投票
0 回答
261 浏览

azure - 使用 PolyBase 将 ORC 数据加载到 SQL DW

我正在尝试通过 PolyBase 加载 ORC 文件格式,但我面临以下问题。

问题:1

我有一个 CSV 文件,它下面的代码将 csv 文件转换为 ORC 格式,但它从永久表中选择数据。如果我删除“as select * from dbo.test”,则创建外部表不起作用。永久表包含 0 条记录。

问题:2

如果我从 test_orc 中选择数据,则会收到无效的 postscript 错误,因此,我从 TEST 目录中删除了我的 .csv 文件。有什么方法可以将 CSV 转换为不同目录中的 ORC 文件,如 TEST2。

问题:3

如果我从 test_orc 中选择数据,那么计数为零并且我没有收到任何错误。

期待

需要将 TEST 目录下的 ORC 文件加载到 dbo.test 表中。

请在这个问题上分享你的想法。

0 投票
1 回答
76 浏览

sql-server - 导入外部表

polybase我使用with创建了一个外部表

数据源是HADOOP。有没有办法在不为每一列重新定义数据类型的情况下导入此表?我搜索一些这样的代码:

当然,这段代码对我来说是失败的,因为我没有使用 Azure SQL DW(我得到一个语法错误)。我在 VM 上使用 SQL Server 2019。

我的问题是有一个SQL表达式,这样我就不必为每一列声明数据类型?

0 投票
2 回答
1208 浏览

sql-server - 从 SS2019 CTP2.2 创建外部数据源不起作用

所以...我有 2 个 SQL Server 2019 实例 (CTP2.2),并且我在单节点配置中安装了一个 Polybase(将其引用为 SS-A)。我在 SS-A 的 master 中创建了 MASTER KEY,并在 SS-A 上的数据库中创建了一个 DATABASE SCOPED CREDENTIAL。当我尝试执行以下操作时:

我收到一个错误

消息 102,级别 15,状态 1,第 6 行
“RDBMS”附近的语法不正确

我曾尝试与 MS SQL Server SME 合作,但没有任何运气(为此工作了数周无济于事)。这里的任何想法——加上给微软的消息——你的文档太棒了!!

0 投票
2 回答
2399 浏览

azure-blob-storage - Polybase 到 Azure Data Lake Gen 2 失败

我正在尝试通过 Polybase 从 Azure SQLDW 连接到 Data Lake Gen 2 中的 Parquet 文件。这是我的代码:

创建外部表执行失败,返回如下错误:

访问 HDFS 时出错:调用 HdfsBridge_IsDirExist 时引发 Java 异常。Java 异常消息:HdfsBridge::isDirExist - 检查directoy 是否存在时遇到意外错误:AbfsRestOperationException: HEAD https://xxxx.dfs.core.windows.net/xxxx?resource=filesystem&timeout=90 StatusCode=403 StatusDescription=Server failed对请求进行身份验证。确保 Authorization 标头的值正确形成,包括签名。错误代码= 错误消息=

该目录确实存在,并且我的服务主体有权访问。我已经通过使用来自 Databricks 的相同服务主体并无错误地读取文件来确认这一点。

我对自己做错了什么感到迷茫。

0 投票
1 回答
3756 浏览

sql - 是否可以在 Azure 和 SQL 中使用跨数据库查询?

我正在开发一个项目,该项目旨在使用 Azure 数据库在 azure 平台上运行,并在本地使用本地 sql 服务器。我们有包含跨数据库调用的存储过程。但是它不适用于 Azure 服务器。我需要能够在 azure 和本地 sql 服务器中工作的跨数据库查询。

我们使用 Elastic Query,它允许我们跨 Azure SQL 数据库进行查询

https://azure.microsoft.com/en-us/documentation/articles/sql-database-elastic-query-overview/

我们可以使用以下代码在 azure 服务器中设置外部数据源。在这种情况下,我们可以执行跨数据库调用,例如连接单个数据库中的表。

如果不添加第三方数据库引擎,似乎无法在我们的本地 SQL 服务器上使用上述方法。在本地 sql server 2017 及更高版本中安装一个名为 PolyBase 的东西来进行跨数据库查询。它仅支持 HADOOP 等外部数据源类型,而不是在 sql server 中引用另一个数据库(或任何数据存储)。

我们可以使用以下代码来完成

使用 HADOOP 和 polybase,我们可以在本地 sql server 中创建外部数据源。但它创建了该外部数据存储的外部数据源。即位于该外部存储中的外部数据表。确切地说,我的要求是在 sql server 中创建数据库的外部数据源。这样我就可以在 azure 和本地 sql server 中使用相同的 corss 数据库查询

有没有办法解决这个问题。或者在 azure 和本地 sql server 中运行跨数据库查询的任何解决方案?

0 投票
1 回答
696 浏览

sql - 使用 polybase 更新 Azure SQL 数据仓库中的更改

我需要有关 Azure SQL 数据仓库的帮助,我正在使用 Polybase 将数据从 Azure Data Lake Storage Gen2 转换为 Azure SQL DW。当我们第一次将数据加载到 DW 时没有问题。但是当我们再次加载数据/增量加载时,我们如何更新数据?

我们正在使用的流程

ASDL2 -> (polybase) -> 外部表 -> (CTAS) -> 暂存表 -> (转换) -> 维度表

每次数据更改时,我们都会将数据重新加载到 ASDL2 中,
UPSERT 数据的最佳方法是什么,或者我们也应该将数据重新加载到 SQLDW 中?

0 投票
2 回答
956 浏览

sql-server - SQL Server 2019 Polybase 创建外部表错误“此操作需要在目标服务器中启用 PolyBase”

我正在使用 SQL Server 2019 预览版(15.0.1000.34)和安装在 localhost/SQL2019 命名实例(Windows 10)和 Azure Data Studio 上的 Polybase 服务,我希望从 Oracle db(远程服务器)添加一个外部表并获得一个错误“此操作需要在目标服务器中启用 PolyBase”。“SQL Server PolyBase Data Movement (SQL2019)”和“SQL Server PolyBase Engine (SQL2019)”服务实际上在我的笔记本电脑上运行。我尝试重新启动计算机,但问题仍然存在。

有谁知道,从 Azure Data Studio 创建外部表还需要采取哪些其他操作?

我正在附上来自 Data Studio 和服务管理器的屏幕截图,最后一张是俄语,但 3 个服务的状态表示“正在运行”。

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
4483 浏览

pandas - 来自 Parquet 错误的 Polybase:无法将 Java.lang.Double 转换为

通过 Polybase 加载 Azure 数据仓库,我正在读取 Azure Blob 上的 Parquet 文件。

首先,我在 SQL 中创建了一个指向 Parquet 文件的外部表,然后使用 CTAS 加载。无论我在 SQL 中使用什么数据类型,它都会给我这种类型转换错误。我试过 DECIMAL、NUMERIC、FLOAT。但加载 VARCHAR 工作正常。

我怀疑这与 Parquet 文件的创建方式有关,该文件来自 Python Pandas 数据框,使用df.to_parquet和使用pyarrow. 深入研究源代码并进行实验,我看到在 Arrow(Parquet 之前的步骤)中的数据类型 data 是 Double。也许这就是为什么?

另外,我在创建文件时尝试了 Gzip 和 Snappy 作为压缩类型,在创建 SQL 外部表时,没有骰子。

从此发疯。有任何想法吗?

重现步骤

环境:

Python:

天青步骤:

  1. 将 Parquet 文件上传到 Azure Blob
  2. 使用 Azure 数据仓库 Gen2,大小:DW400c
  3. 根据文档教程,创建了数据库范围凭证、外部数据源和外部文件格式

SQL 代码:

这是错误:

编辑: 也尝试使用fastparquet而不是pyarrow,同样的错误。

0 投票
0 回答
567 浏览

sql-server - 使用 Polybase 将 SQL Server 连接到 Oracle 数据库

尝试在 SQL Server 中使用 Polybase 创建外部源并收到此错误:

消息 46505,级别 16,状态 1,第 1 行缺少所需的外部 DDL 选项 'type

但是,基本在线示例在创建外部源时没有类型。