在AWS Glue上使用JDBC连接Trino

news2024/12/30 3:44:55

呼应此前一篇文章《在Spark上使用JDBC连接Trino》,继续在AWS Glue上测试JDBC连接Trino,同样,这是一个非常不典型的应用用场景,本文仅记录测试步骤和结果,不做评论。本文地址:https://laurence.blog.csdn.net/article/details/129098423,转载请注明出处!

1. 测试环境

信息项设定值
测试环境AWS Glue 3.0 + Trino 398 ( over EMR 6.9.0 )
MetastoreGlue Data Catalog
Trino Server10.0.129.105
Trino端口8889 ( 区别于开源默认端口8080 )

2. 测试目标

测试在Glue上使用JDBC读写Trino的可行性

3. 操作步骤

① 创建Glue Connection

选择JDBC类型的Connection,配置好JDBC URL和网络,Glue Connection最重要的作用是配置Glue Worker到目标数据源的网络联通性,所以务必要清楚Trino所在VPC,子网以及可确保联通的安全组:

在这里插入图片描述

② 将Trino JDBC Driver上传至S3

# 在Trino所在EMR主节点上执行
aws s3 cp /usr/lib/trino/trino-jdbc/trino-jdbc-398-amzn-0.jar s3://YOUR_BUCKET/trino-jdbc-398-amzn-0.jar

③ 创建Glue Job

有两点区别于普通Glue Job:

  1. 需attach上一步创建的connection
  2. 需指定trino jdbc driver路径 (即为第②步中上传的jar包路径)

在这里插入图片描述

④ 编写测试代码

import sys
from awsglue.transforms import *
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job

sc = SparkContext()
glueContext = GlueContext(sc)
job = Job(glueContext)
# Please update the values in the options to connect to your own data source
options = {
    "dbTable":"orders",
    "url" : "jdbc:trino://10.0.129.105:8889/hive/default",
    "user": "hadoop",
    "password": "",
    "className" : "io.trino.jdbc.TrinoDriver"
    }
datasource = glueContext.create_dynamic_frame_from_options(
    connection_type = "custom.jdbc", 
    connection_options = options,
    transformation_ctx = "datasource")
datasource.show()

job.commit()

⑤ 程序输出

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/353976.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

还在想假期去哪玩?直接做一个旅游攻略小程序

憋了几年好不容易解封准备出去散散心,但看着大江南北这么多景点是不是有点让你选择强迫症呢?那就先制作一个旅游攻略小程序看看驴友们的分享吧。

E. Explosions?(思维+单调队列

Problem - E - Codeforces 题意:有 n 个怪,生命值为,你有两种操作,一种花费 1 MP减少一个怪的一格血量,可以操作任意次;另一次是花费 x MP,制造一个爆炸,可以不断消灭两侧连续严格递…

【C语言】 详谈指针

☃️内容专栏:【C语言】初阶部分 ☃️本文概括:继初识C语言,对C语言指针初阶部分进行归纳与总结。 ☃️本文作者:花香碟自来_ ☃️发布时间:2023.2.17 目录 一、指针和指针类型 1.1 指针 1.2 指针类型 其一&#x…

运动耳机选择什么模式?运动耳机的正确选择

动是生命的源泉,有许多朋友都会在运动的时候戴上一个运动耳机。因为运动时听音乐会给我们带来充足的动力,但是选择一款合适自己的运动耳机也是一门学问,今天我就来给大家推荐几款还不错的运动耳机。 1、NANK南卡RunnerPro4骨传导运动耳机 骨…

下载网上压缩包(包含多行json)并将其转换为字典的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理…

分布式 CAP BASE理论

文章目录CAP简介不是所谓的“3 选 2”CAP 实际应用案例BASE简介BASE 理论的核心思想总结CAP 简介 在理论计算机科学中,CAP 定理(CAP theorem)指出对于一个分布式系统来说,当设计读写操作时,只能同时满足以下三点中的…

cesium学习记录01

1,将右弦GISer的cesium实战系列的大部分功能(25-110) 都又跟着走了一遍(大部分是CTRL CCRTL V) 2,代码SVN地址(用户名:liu 密码:123) 主要文件是test/src/views/MapFu…

Prometheus离线tar包安装

Prometheus离线tar包安装实验环境一、部署前操作二、Master2.1下载2.2解压2.3更改服务目录名称2.4创建系统服务启动文件2.5配置修改2.6启动并设置开机自启2.7访问2.8添加node节点2.8.1 添加方法2.8.2修改Prometheus配置(Master)————————————…

docker:实例演示妙用export让容器和数据分离

简介:docker-export用于将容器打包成基础镜像,主要作用就是制作基础镜像,特别是在容器非常大的情况下,拉取了一个空白系统镜像,创建容器后安装了一堆自己需要的环境,就可以使用 export 命令打包成自己的基础…

2005-2022中国企业对外直接投资、OFDI海外投资明细、中国全球投资追踪数据CGIT(含非建筑施工类问题投资)

中国全球投资跟踪”(China Global Investment Tracker),数据库,美国企业研究所于1月28日发布。数据库显示,2005年以来,中国对外投资和建设总额已接近2万亿美元。该数据库是唯一一套涵盖中国全球投资和建设的…

概率和似然

在日常生活中,我们经常使用这些术语。但是在统计学和机器学习上下文中使用时,有一个本质的区别。本文将用理论和例子来解释概率和似然之间的关键区别。 概率与似然 假设在一场棒球比赛中,两队的队长都被召集到场上掷硬币。获胜的队长将根据掷…

Linux 监测服务心跳、服务重启策略

文章目录前言背景一、curl服务可用验证二、服务探测脚本三、配置系统定时任务四、Linux特殊字符转义总结前言 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i、 提示:以下是本篇文章正文内容,下面案例可供参考 背景 当…

【飞桨AI-Python小白逆袭大神课程】作业1-python基础练习

链接:飞桨AI Studio - 人工智能学习与实训社区 作业一:输出 9*9 乘法口诀表(注意格式) 注意:提交作业时要有代码执行输出结果。 def table():#在这里写下您的乘法口诀表代码吧!if __name__ __main__:table() 思路&#xff1a…

基础篇—CSS padding(填充\内边距)解析

CSS padding(填充) CSS padding(填充)是一个简写属性,定义元素边框与元素内容之间的空间,即上下左右的内边距。 属性说明padding使用简写属性设置在一个声明中的所有填充属性padding-bottom设置元素的底部填充padding-left设置元素的左部填充padding-right设置元素的右部…

win11下WSL环境安装

微软官方wsl手册 微软官方wsl手册pdf 一、wsl中镜像安装 在启用或关闭Windows功能勾选一下两个选项 打开powershell,输入wsl, 可以根据wsl的命令来安装镜像。也可以在软件商店中进行安装ubuntu 安装完成后,打开ubuntu,会自动完成初始化。提示安装成功…

【RabbitMQ六】——RabbitMQ主题模式(Topic)

RabbitMQ主题模式(通配符模式)前言什么是Topic模式使用Topic模式的要点通配符规则示例代码示例Pom文件引入RabbtiMQ依赖RabbitMQ工具类生产者消费者1消费者2效果总结前言 通过本篇博客能够简单使用RabbitMQ的主题模式。 本篇博客主要是博主通过官网总结…

K8s集群部署(kubeadm安装部署详细手册)

1、简介 K8s部署主要有两种方式:1、Kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 2、二进制 从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。…

【C++进阶】二、多态详解(总)

目录 一、多态的概念 二、多态的定义及实现 2.1 多态的构成条件 2.2 虚函数 2.3 虚函数的重写 2.4 虚函数重写的两个例外 2.4.1 协变 2.4.2 析构函数的重写 2.5 C11 override 和 final 2.5.1 final 2.5.2 override 2.6 重载、覆盖(重写)、隐藏(重定义)的对比 三、…

【C++】类与对象 (四)初始化列表 static成员 友元 内部类 匿名对象 拷贝对象时的一些编译器优化

前言 本章就是我们C中类与对象的终章了,不过本章的难度不大,都是类中一些边边角角的知识,记忆理解就行了,相信经过这么长时间的学习类与对象,你对面向对象也有了更加深的理解,最后我们学习完边边角角的一些…

2022黑马Redis跟学笔记.实战篇(五)

2022黑马Redis跟学笔记.实战篇 五4.5 Redis实现秒杀优化4.5.1 基于Redis实现秒杀减库存6.1 秒杀优化-异步秒杀思路4.5.2 基于Redis的一人一单限制4.5.3 基于阻塞队列的异步下单4.6 秒杀的异步优化4.6.1.基于消息队列的异步下单思路4.6.2.基于List结构的消息队列4.6.3.基于PubSu…