当前位置: 首页 > news >正文

网站建设与栏目设置免费seo课程

网站建设与栏目设置,免费seo课程,东鹏设计家官网,自己做的网站如何上线AWS Glue作为一种无服务器产品,其运行环境是“不可预知”的,也就是“一个黑盒”,所以如何能连接一些自有数据源是Glue必须考虑并给予满足的,为此,Glue给出的解决方案就是Connector和Connection,一个connect…

AWS Glue作为一种无服务器产品,其运行环境是“不可预知”的,也就是“一个黑盒”,所以如何能连接一些自有数据源是Glue必须考虑并给予满足的,为此,Glue给出的解决方案就是Connector和Connection,一个connector就是一个用于协助访问数据源的程序包(容器镜像或Jar包),如果你要使用一个connector,必须先创建一个针对该connector的connection。一个connection包含了连接一个特定数据源的属性。connector和connections联合起来为目标数据源提供访问通路。本文地址:https://laurence.blog.csdn.net/article/details/129139176,转载请注明出处!

1. 关系与区别

下面是一些明确切且重要的结论:

  • 先创建Connector,再创建Connection,后者依附于前者,Connector与Connection是一对多的映射关系
  • Connector与Connection非常类似于数据库客户端工具(例如DataGrip)中的Driver和DataSource之间的关系,Connector类似Driver,主要包含JAR包和基础属性(如JDBC类型的Connector需要配置Base的JDBC URL),DataSource类似于DataSource,主要包含身份认证信息和网络配置
  • 能在Glue控制台上编辑的主要是Custom Connector & Connection,以及Marketplace Connector关联的Connection
  • Marketplace Connector是只读的,不可配置,对应Connection可由用户创建和编辑
  • Marketplace Connector在架构上有更大的“运作空间”,一般以容器形式运行于EKS/ECS上
  • Custom Connector只能是一个Jar包,所以它只有Spark、Athena、JDBC三种类型(对应Glue提供的三种集成API)
  • Custom Connection可以独立于Connector存在,依赖Jar包可通过Job Dependent Jar配置给Job,故不一定非要依赖Connector
  • 再进一步,如果配置了VPC Connection,再通过Job Dependent Jar配置Jar包,则Connection也可以省去(未必所有的Connection都可以,但测试过部分,确实是可行的)
  • 尽管上述两点都已证明可行,还是建议始终使用Custom Connector + Custom Connection的标准方式配置数据源连接。跳过Connector直接创建Custom Connection会丢失一个优势:由于在Glue图形化编辑器上,只有Connector是可以直接拖放的Source/Sink组件,所以如果跳过Custom Connector直接创建Custom Connection,在Glue图形化编辑器上就没有这个数据源对应的连接器可以拖放了。

下图对以上要点进行了总结:

请添加图片描述

来自于marketplace的connector显然拥有“特权”,它们拥有更加复杂的架构,这些connector往往都有自己docker镜像,并使用ECS/EKS部署和运行镜像,独立的镜像给了connector最大化的定制空间。而自定义connector的“运作空间”远远没有marketplace上的connector大,它不能拥有自定义镜像,只能以jar包形式存在,并依附于Glue的运行环境(通过三套API接口集成),所以,自定义的connector只有三种类型,只能以Jar包形式存在:

  • Spark DataSource API -> connectionType=custom.spark
  • Amazon Athena Data Source API -> connectionType=custom.athena
  • Java JDBC API -> connectionType=custom.jdbc

2. Connection的加载时机

此外,我们一直想找出:Glue的Connection与Spark原生数据加载方式(例如:spark.read.format(“jdbc”))之间到底有什么差异,我们以JDBC类型的Connection做了如下一些测试:

测试场景测试结果
Custom JDBC Connection + Glue Context with Connection成功
Custom VPC Connection + Job Dependent Jar + Glue Context with Connection成功
Custom JDBC Connection + Spark原生数据加载方式 ( spark.read.format(“jdbc”) )失败

上述三个测试用例可有力地证明:在Glue中,对于一个数据源的连接配置只能通过Glue专属的GlueContext加载才能生效。关于这一点,我们没有办法从源代码上获得验证,但是一种合理的解释是:我们知道,Glue作为Serverless产品,其工作节点(Worker)的网络环境是不可见的“黑盒”,为了能和目标数据源打通,Glue会根据Connction中的网络配置给它的工作节点创建临时的ENI(虚拟网卡),用于连接到Connection配置的子网中,这些工作节点也因此获得了指定子网内的私有IP地址,从上面的测试结果来看,真正触发Glue去完成这一系列操作的“开关”是在代码中通过GlueContext加载Connection时(根据Spark Lazy Loading的一贯特性,触发的时机可能会更晚,有可能是在初次读取DynamicFrame时),而不是只要在Job属性中关联了一个Connection,在Job启动时就会被自动激活。

3. 重要细节

最后,补充一些测试中的细节:

  • Trino JDBC Driver的URL中user参数不得为空

  • Trino JDBC Driver的URL中user和passoword,只能通过secret manager配置方可生效

  • 通过Glue专属的GlueContext加载Connection指的是类似下面的代码:

    # author: https://laurence.blog.csdn.net/
    Trino_node1676884948138 = glueContext.create_dynamic_frame.from_options(connection_type="custom.jdbc",connection_options={"tableName": "orders","dbTable": "orders","jobBookmarkKeys": ["orderkey"],"jobBookmarkKeysSortOrder": "asc","connectionName": "my-trino-connection",},transformation_ctx="Trino_node1676884948138",
    )
    
  • 通过Spark原生数据加载方式读取数据源指的是类似下面的代码:

    # author: https://laurence.blog.csdn.net/
    spark.read.format("jdbc").option("url", "jdbc:trino://localhost:8889/hive/default").option("driver", "io.trino.jdbc.TrinoDriver").option("user", "hadoop").option("dbtable", "orders").load().show()
    
  • Glue的官方文档对于创建ENI有专门的解释:

    AWS Glue sets up elastic network interfaces that enable your jobs to connect securely to other resources within your VPC. Each elastic network interface is assigned a private IP address from the IP address range within the subnet you specified.

4. 相关资源

4.1. 内置Connectors

connectionTypeConnects To
custom.*Spark, Athena, or JDBC data stores (see Custom and AWS Marketplace connectionType values
documentdbAmazon DocumentDB (with MongoDB compatibility) database
dynamodbAmazon DynamoDB database
kafkaKafka or Amazon Managed Streaming for Apache Kafka
kinesisAmazon Kinesis Data Streams
marketplace.*Spark, Athena, or JDBC data stores (see Custom and AWS Marketplace connectionType values)
mongodbMongoDB database
mysqlMySQL database (see JDBC connectionType Values)
oracleOracle database (see JDBC connectionType Values)
orcFiles stored in Amazon Simple Storage Service (Amazon S3) in the Apache Hive Optimized Row Columnar (ORC) file format
parquetFiles stored in Amazon S3 in the Apache Parquet file format
postgresqlPostgreSQL database (see JDBC connectionType Values)
redshiftAmazon Redshift database (see JDBC connectionType Values)
s3Amazon S3
sqlserverMicrosoft SQL Server database (see JDBC connectionType Values)

4.2. Marketplace Connectors

通过下面的链接可以查找到Marketplace上所有的连接器:

https://aws.amazon.com/marketplace/search/results?searchTerms=glue+connector

4.3. Custom Connectors

这里有一篇整体介绍,建议先阅读此文:

Developing, testing, and deploying custom connectors for your data stores with AWS Glue

4.3.1. 基于Spark DataSource API的自定义连接器

文档:

https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Spark/glue-3.0

示例:

MinimalSpark3Connector.scala

4.3.2. 基Java JDBC API的自定义连接器

文档:

https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#code-jdbc-connector

示例:

https://github.com/aws-samples/aws-glue-samples/blob/master/GlueCustomConnectors/development/Spark/SparkConnectorMySQL.scala

4.3.3. 基Java JDBC API的自定义连接器

文档:

https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Athena

示例:

https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Athena

本文地址:https://laurence.blog.csdn.net/article/details/129139176,转载请注明出处!

http://www.zhongyajixie.com/news/48125.html

相关文章:

  • 营销网站功能关于校园推广的软文
  • 哪里有做网站东莞做一个企业网站
  • 网站开发实例视频百度大数据平台
  • 医疗美容网站建设外贸营销型网站设计
  • 有网站做淘宝客外贸建站网站推广
  • 太仓智能网站开发广州网站营销推广
  • asp.net网站配置文件石家庄seo
  • 做网站时背景图片浮动百度搜索竞价
  • 做设计必须知道的几个网站seo搜索排名优化方法
  • 昌平网站建设怎么才能建立一个网站卖东西
  • 开源网站建设实习心得国内推广平台有哪些
  • 广州购物网站开发大数据平台
  • 新闻网站建设评比规则站长工具seo综合查询怎么用
  • wordpress建m域名网站网站推广公司排行榜
  • 建设端午节网站的目的主题aso应用商店优化原因
  • 顺企网宁波网站建设今日小说排行榜百度搜索榜
  • 做打折网站如何app拉新项目推广代理
  • 网站建设销售好做页面优化的方法有哪些
  • 网站模板在线预览网络推广外包哪个公司做的比较好
  • b站私人直播间哪个软件好用域名搜索引擎入口
  • 网站建设 h5百度搜索提交入口
  • wordpress文章自动更新方法长沙网站推广和优化
  • 中山地区做网站公司在百度上怎么发布信息
  • 郑州企业建站设计上海网站营销seo方案
  • 橙子建站是什么平台搜索引擎优化案例分析
  • 做招生网站实体店100个营销策略
  • 软件app研发英语seo什么意思
  • 廊坊外贸网站建设百度搜索引擎优化方式
  • 上海疫情百度灰色词优化排名
  • 移动端网站的优势百度小程序