X-Pack Spark服务通过外部计算资源的方式,为Redis、Cassandra、MongoDB、HBase、RDS存储服务提供复杂分析、流式处理及入库、机器学习的能力,从而更好的解决用户数据处理相关场景问题。
![be0c5c87da12145325d0fbbf2770c011e63bbb7a.png](https://ucc.alicdn.com/pic/developer-ecology/0e9c03366a584728af16c0e09721f631.png)
RDS & POLARDB分表归档到X-Pack Spark步骤
--------------------------------
**一键关联POLARDB到Spark集群**
一键关联主要是做好spark访问RDS & POLARDB的准备工作。
![3da40523db7ba8a13ad447479c143ae90e1f8f4d.png](https://ucc.alicdn.com/pic/developer-ecology/58032de04d5b4c3da987c353c50b0339.png)
**POLARDB表存储**
在database ‘test1’中每5分钟生成一张表,这里假设为表 'test1'、'test2'、'test2'、...
![f8b752d3dd8c53fb20c66e01c00fb201f6396c1a.png](https://ucc.alicdn.com/pic/developer-ecology/1dd7c5aad93d4392b224ccf20e936473.png)
具体的建表语句如下:
\*请左右滑动阅览
```
CREATE TABLE `test1` ( `a` int(11) NOT NULL,
`b` time DEFAULT NULL,
`c` double DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
```
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
**归档到Spark的调试**
x-pack spark提供交互式查询模式支持直接在控制台提交sql、python脚本、scala code来调试。
1、首先创建一个交互式查询的session,在其中添加mysql-connector的jar包。
\*请左右滑动阅览
```
wget https://spark-home.oss-cn-shanghai.aliyuncs.com/spark_connectors/mysql-connector-java-5.1.34.jar
```
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
![6ecbde3466820df6fbee0285e9d11d96cbd995fb.png](https://ucc.alicdn.com/pic/developer-ecology/5a3d783f4fbc4d098f994939a8a874e6.png)
2、创建交互式查询
以pyspark为例,下面是具体归档demo的代码:
\*请左右滑动阅览
```
spark.sql("drop table sparktest").show()
# 创建一张spark表,三级分区,分别是天、小时、分钟,最后一级分钟用来存储具体的5分钟的一张polardb表达的数据。字段和polardb里面的类型一致
spark.sql("CREATE table sparktest(a int , b timestamp , c double ,dt string,hh string,mm string) "
"USING parquet PARTITIONED BY (dt ,hh ,mm )").show()
#本例子在polardb里面创建了databse test1,具有三张表test1 ,test2,test3,这里遍历这三张表,每个表存储spark的一个5min的分区
# CREATE TABLE `test1` (
# `a` int(11) NOT NULL,
# `b` time DEFAULT NULL,
# `c` double DEFAULT NULL,
# PRIMARY KEY (`a`)
# ) ENGINE=InnoDB DEFAULT CHARSET=utf8
for num in range(1, 4):
#构造polardb的表名
dbtable = "test1." + "test" + str(num)
#spark外表关联polardb对应的表
externalPolarDBTableNow = spark.read \
.format("jdbc") \
.option("driver", "com.mysql.jdbc.Driver") \
.option("url", "jdbc:mysql://pc-xxx.mysql.polardb.rds.aliyuncs.com:3306") \
.option("dbtable", dbtable) \
.option("user", "name") \
.option("password", "xxx*") \
.load().registerTempTable("polardbTableTemp")
#生成本次polardb表数据要写入的spark表的分区信息
(dtValue, hhValue, mmValue) = ("20191015", "13", str(05 * num))
#执行导数据sql
spark.sql("insert into sparktest partition(dt= %s ,hh= %s , mm=%s ) "
"select * from polardbTableTemp " % (dtValue, hhValue, mmValue)).show()
#删除临时的spark映射polardb表的catalog
spark.catalog.dropTempView("polardbTableTemp")
#查看下分区以及统计下数据,主要用来做测试验证,实际运行过程可以删除
spark.sql("show partitions sparktest").show(1000, False)
spark.sql("select count(*) from sparktest").show()
```
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
**归档作业上生产**
交互式查询定位为临时查询及调试,生产的作业还是建议使用spark作业的方式运行,使用文档参考。这里以pyspark作业为例:
![9730abaad2803bfb6a3b7b080a26fe03b808e5ad.png](https://ucc.alicdn.com/pic/developer-ecology/ec0b4e9e8d954237adf47e7f468d6f6b.png)
/polardb/polardbArchiving.py 内容如下:
\*请左右滑动阅览
```
# -*- coding: UTF-8 -*-
from __future__ import print_function
import sys
from operator import add
from pyspark.sql import SparkSession
if __name__ == "__main__":
spark = SparkSession \
.builder \
.appName("PolardbArchiving") \
.enableHiveSupport() \
.getOrCreate()
spark.sql("drop table sparktest").show()
# 创建一张spark表,三级分区,分别是天、小时、分钟,最后一级分钟用来存储具体的5分钟的一张polardb表达的数据。字段和polardb里面的类型一致
spark.sql("CREATE table sparktest(a int , b timestamp , c double ,dt string,hh string,mm string) "
"USING parquet PARTITIONED BY (dt ,hh ,mm )").show()
#本例子在polardb里面创建了databse test1,具有三张表test1 ,test2,test3,这里遍历这三张表,每个表存储spark的一个5min的分区
# CREATE TABLE `test1` (
# `a` int(11) NOT NULL,
# `b` time DEFAULT NULL,
# `c` double DEFAULT NULL,
# PRIMARY KEY (`a`)
# ) ENGINE=InnoDB DEFAULT CHARSET=utf8
for num in range(1, 4):
#构造polardb的表名
dbtable = "test1." + "test" + str(num)
#spark外表关联polardb对应的表
externalPolarDBTableNow = spark.read \
.format("jdbc") \
.option("driver", "com.mysql.jdbc.Driver") \
.option("url", "jdbc:mysql://pc-.mysql.polardb.rds.aliyuncs.com:3306") \
.option("dbtable", dbtable) \
.option("user", "ma,e") \
.option("password", "xxx*") \
.load().registerTempTable("polardbTableTemp")
#生成本次polardb表数据要写入的spark表的分区信息
(dtValue, hhValue, mmValue) = ("20191015", "13", str(05 * num))
#执行导数据sql
spark.sql("insert into sparktest partition(dt= %s ,hh= %s , mm=%s ) "
"select * from polardbTableTemp " % (dtValue, hhValue, mmValue)).show()
#删除临时的spark映射polardb表的catalog
spark.catalog.dropTempView("polardbTableTemp")
#查看下分区以及统计下数据,主要用来做测试验证,实际运行过程可以删除
spark.sql("show partitions sparktest").show(1000, False)
spark.sql("select count(*) from sparktest").show()
spark.stop()
```
![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")
分享到:
相关推荐
该晶体管采用先进的 TrenchFET® 技术,具有低导通电阻(RDS(on))特性,在 VGS=10V 时仅为 47mΩ,适用于多种移动计算设备中的负载开关、笔记本适配器开关以及 DC/DC 转换器等应用场合。 #### 二、主要特点 - **...
该器件特别适用于移动计算设备中的负载开关、笔记本适配器开关以及直流变换器等应用场景。PM509BA-VB具备以下主要特性: - **TrenchFET®技术**:通过先进的TrenchFET技术显著降低导通电阻(RDS(on))。 - **高可靠...
| 工作结温和存储温度范围 | TJ, Tstg | -55到150 | °C | | 焊接推荐(峰值温度) | - | 260 | - | - **脉冲宽度**≤300μs,占空比≤2% - **保证设计**,但不在生产测试范围内。 #### 热阻率额定值 | 参数 | ...
资源分类:Python库 所属语言:Python 资源全名:aws_cdk.aws_rds-1.100.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:aws_cdk.aws_rds-1.137.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
NCE3401AY-VB是一款采用SOT23封装的P-Channel沟道场效应晶体管(MOSFET),其主要特点是具有-30V的最大漏源电压、-5.6A的最大连续漏极电流以及低导通电阻(RDS(ON))。此MOSFET适用于多种应用场合,包括移动计算设备...
资源分类:Python库 所属语言:Python 资源全名:aws_cdk.aws_rds-1.45.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
**PyPI 官网下载 | aws_cdk.aws_rds-1.86.0-py3-none-any.whl** PyPI(Python Package Index)是Python社区的官方软件包仓库,提供了一个平台,使得开发者可以发布、查找和安装Python模块。在本案例中,我们讨论的...
AWS CDK提供了一套丰富的构造函数,用于构建和配置这些资源,确保与AWS的最佳实践保持一致。 总之,`aws-cdk.aws-rds-1.82.0.tar.gz`是一个用于AWS CDK的Python库,专门处理Amazon RDS服务。通过这个库,开发者能够...
资源分类:Python库 所属语言:Python 资源全名:aws_cdk.aws_rds-1.62.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
该器件具有低导通电阻(RDS(ON))的特点,适用于多种负载开关应用,如笔记本电脑和台式机电源管理系统等。本文将详细介绍DTM4407-VB的主要特点、电气参数以及应用场景。 #### 主要特点 - **无卤素**: 符合IEC 61249-...
- **TrenchFET®**技术:这种技术通过提高晶体管的密度来降低导通电阻(RDS(on)),从而减少功率损耗。 - **额定电压**:60V - **最大电流**:每个通道7A - **导通电阻**: - 当VGS=10V时,RDS(on)为27mΩ - 当VGS=...
每个通道支持最高60V的电压,连续电流可达6A,导通电阻(RDS(ON))为27毫欧(在VGS=10V时)。其工作温度范围广泛,适用于各种应用环境。 #### 特性与优势 - **TrenchFET®功率MOSFET技术**:该技术通过优化器件...
| 漏源导通电阻(VGS=10V, ID=4.5A, TJ=125°C) | RDS(on) | VGS = 10V, ID = 4.5A, TJ = 125°C | - | 0.066 | - | Ω | | 漏源导通电阻(VGS=10V, ID=4.5A, TJ=175°C) | RDS(on) | VGS = 10V, ID = 4.5A, TJ = ...
- **PCB布局**:为了确保最佳的散热效果,建议在PCB设计时增加铜箔面积,并考虑使用散热片或其他散热措施来降低结温。 - **安装方式**:推荐采用表面贴装技术(SMT),以减少杂散电感的影响。 综上所述,STM6930A-...
它具有60V的最大工作电压,连续电流可达4A,在VGS=10V时,导通电阻RDS(ON)为85mΩ。此外,其阈值电压Vth在1~3V之间。该器件适用于电池开关和DC/DC转换器等应用。 ### 特性 1. **无卤素**:符合IEC 61249-2-21标准...