【发布时间】:2021-06-23 18:39:05
【问题描述】:
我想将 Superset 连接到 Databricks 以查询表。 Superset 使用 SQLAlchemy 连接到需要 PAT(个人访问令牌)才能访问的数据库。
当我通过 Databricks Web UI 使用我在我的帐户上生成的 PAT 时,是否可以连接和运行查询?但我不想在生产环境中使用我的个人令牌。尽管如此,我还是找不到如何为服务主体生成类似 PAT 的令牌。
有效的 SQLAlchemy URI 如下所示:
databricks+pyhive://token:XXXXXXXXXX@aaa-111111111111.1.azuredatabricks.net:443/default?http_path=sql%2Fprotocolv1%qqq%wwwwwwwwwww1%eeeeeeee-1111111-foobar00
查看 Azure 文档后,有两种方法可以在 Databricks 和其他服务之间运行查询:
- 为要与超集关联的服务主体创建 PAT。
- 为 Superset 创建一个用户 AD 帐户。
对于第一种也是首选的方法,我能够推进,但我无法生成服务主体的 PAT: 我能够在 Azure 的 AD 上注册一个应用程序。 所以我得到了租户 ID、客户端 ID 并为注册的应用程序创建了一个秘密。 有了这些信息,我就能够 curl Azure 并接收该应用程序的 JWT 令牌。 但是文档中提到的所有令牌都是 JTW 的 OAUTH2 令牌,它似乎不适用于 SQLAlchemy URI。
我知道可以为服务主体生成 PAT,因为在 documentation 上提到了如何读取、更新和删除服务主体的 PAT。但它没有关于如何为服务主体创建 PAT 的信息。
我更喜欢避免使用第二种方法(为 Superset 创建 AD 用户),因为我不允许为 AD 创建/管理用户。
总之,我有一个有效的 SQLAlchemy URI,但我想使用与服务主体相关联的生成令牌,而不是使用我的 PAT。但我找不到如何生成该令牌(我只找到了有关如何生成 OAUTH2 令牌的文档)。
【问题讨论】:
标签: azure sqlalchemy azure-active-directory databricks azure-databricks