Dataphin 内置pyhive使用说明

简介: Dataphin内置pyhive使用说明

使用 Hive 作为离线计算引擎(CDP,CDH,TDH,EMR 等)构建数据平台时,纯 SQL 缺少过程语言的能力,比如,if-else 条件控制,循环控制,设置程序内变量等。一般用户会借助其他语言来实现过程化编程,如 Python,其中 pyhive 是使用非常广泛的 module。


本地使用 pyhive

以下是用户在本地使用 pyhive 连接 hive 处理数据的示例


Hive使用账号密码认证:

# 加载包
from pyhive import hive
# 建立连接
conn = hive.connect(host = '100.100.100.100',  # HiveServer 地址
                    port = 10000,              # 端口 
                    username = 'xxx',          # 账号
                    database = 'xxx'           # 数据库
                    password = 'xxx')          # 密码
                    
# 查询
cursor = conn.cursor()
cursor.execute('select * from table limit 10') # 业务处理语句
for result in cursor.fetchall():
    print(result)
    
# 关闭连接
cursor.close()
conn.close()

Hive使用Kerberos认证

# 外层会话先执行 kinit -kt {keytab} {principal@REALM} 通过kerberos认证
# 加载包
from pyhive import hive
# 建立连接
conn = hive.connect(host = '100.100.100.100',      # HiveServer
                    port = 10000,                  # 端口 
                    auth = 'KERBEROS',          
                    kerberos_service_name = 'hive',
                    database = 'xxx')
                    
# 查询
cursor = conn.cursor()
cursor.execute('select * from table limit 10')     # 业务处理语句
for result in cursor.fetchall():
    print(result)
    
# 关闭连接
cursor.close()
conn.close()


Dataphin 内使用 pyhive

在 Dataphin 内,也支持按照以上本地的方式使用 pyhive,但这种方式存在以下问题:

  1. 如果 Hive 使用账号密码认证,就需要开发者可以获取到账号密码,第一容易造成账号泄密,第二如果修改账号密码,需要同步更新程序或变量。
  2. 如果 Hive 使用 Kerberos 认证,除了开发者需要获取 keytab 容易造成泄密和修改的问题外,Kerberos 认证流程的代码实现也比较复杂
  3. Dataphin 无法对用户做鉴权,可以绕开 Dataphin 的权限体系
  4. 无法查询使用逻辑表


Dataphin 在 v3.10 版本内置了 pyhive,调用内部 pyhive 时,系统将自动使用项目计算源中的认证配置来初始化 Hive 连接,提供一个 pyhive.hive.Cursor 对象 (hivec)。上文中的示例使用内置 pyhive 改写后如下:

# hivec 是 pyhive.hive.Cursor 对象
from dataphin import hivec
# 查询
hivec.execute('select * from table limit 10')
for result in hivec.fetchall():
    print(result)
# 系统自动 close connection,无须显式调用 close()


可以使用以下代码查看 hivec 的方法

from dataphin import hivec
print(dir(hivec))

hivec 主要有以下方法,与 pyhive.hive.Cursor 的同名方法一致:

  • execute,执行 SQL 语句
  • fetchall,获取所有查询结果
  • fetchmany,获取指定行数的查询结果
  • fetchone,获取一行查询结果
  • close,关闭 cursor 和 connection


以上就是 Dataphin 内置 pyhive 的全部内容。

相关文章
|
8月前
|
存储 分布式计算 Hadoop
Dataphin功能Tips系列(86)Dataphin“查询加速”方案:提升大表分析性能,节省存储保障数据一致性
Dataphin推出“查询加速”功能,无需数据同步,通过一键映射外部Catalog,实现对MaxCompute/Hadoop大表的透明加速。利用StarRocks等引擎秒级响应即席查询,保障权限统一与数据安全,降低存储成本与运维压力。
272 0
|
2月前
|
Apache 芯片 异构计算
刚发布的 Gemma4 12B 能打吗?三款最新顶流开源模型跑分全解读,堪比跟去年主流闭源模型
Gemma4 12B(6月3日刚发布)、Gemma4 26B A4B、Qwen3.6-35B-A3B,三款近期开源模型在 MMLU-Pro、GPQA Diamond、AIME 等评测中全面对标 Claude Sonnet 4 和 GPT-4.1 这两款 2025 年中闭源旗舰 ,数学科学推理甚至大幅领先。一文看懂跑分、架构差异和使用场景。
782 0
|
10月前
|
数据采集 SQL 数据可视化
Dataphin功能Tips系列(72)一键数据探查,打造高质量数据开发、分析流程
Dataphin数据探查功能助力高效识别数据质量问题,支持手动与自动两种探查模式。通过一键生成质量报告,快速检测空值、异常值、重复值等问题,全面掌握数据分布与健康状况,提升数据准备与分析准确性。
584 7
|
5月前
Dataphin登录系统重磅升级:界面化SSO配置、多账号登录功能上线
Dataphin V6.0推出界面化SSO配置与多账号体系登录功能,支持CAS、OAuth2.0、SAML、飞书等多种协议,解决旧版配置复杂、不支持多源登录等痛点,提升企业单点登录体验与管理效率。
446 0
|
SQL 关系型数据库 数据库连接
|
8月前
|
存储 分布式计算 关系型数据库
Dataphin功能Tips系列(80)每日新增表高效同步!脚本模式+参数化配置助你轻松搞定动态数据同步
某电商平台每日订单表按日期命名,需同步至MaxCompute统一表。通过Dataphin离线集成,配置动态表名变量`${yyyy_MM_dd}`并结合运行参数,实现自动同步最新订单数据,操作简便高效。
259 0
|
10月前
|
数据采集 监控 调度
Dataphin功能Tips系列(76)质量规则调度配置系列(3)-定时调度
Dataphin「定时调度」功能支持按需设定数据质量检测时间与频率,适用于定期检查数据质量问题的场景。提供手动配置和系统推荐两种方式,可自动执行规则并生成报告,帮助用户高效发现并处理问题。
321 9
|
数据采集 搜索推荐 数据管理
数据架构 CDP 是什么?
数据架构 CDP 是什么?
1038 2
|
数据采集 SQL 人工智能
告别数据混乱:瓴羊Dataphin 通过AI+标准让企业数据“活”起来 | 【瓴羊数据荟】数据MeetUp第四期
AI技术的快速发展促使企业重新审视数据治理的重要性。当前,企业在数据治理中常因指标口径不统一、数据血缘不透明等问题陷入困境。阿里云智能集团瓴羊高级技术专家周鑫提出,以数据标准为核心贯穿数据全生命周期,可有效解决治理难题。
908 15
告别数据混乱:瓴羊Dataphin 通过AI+标准让企业数据“活”起来 | 【瓴羊数据荟】数据MeetUp第四期

热门文章

最新文章