03-region.sql

本文展示了针对上海行政区划数据的一系列数据库操作,包括查询、删除和插入等SQL语句,用以维护数据库中区划信息的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >








脚本太长了~ ~ ~ ~复制部分~ ~ ~ ~

SELECT * FROM T_SYS_DICT WHERE pid = 'b8d10191-8464-4463-a977-0daad9b7d6fc';
SELECT t1.* FROM T_SYS_DICT t1 WHERE t1.pid IN (SELECT ID FROM T_SYS_DICT WHERE pid = 'b8d10191-8464-4463-a977-0daad9b7d6fc');
SELECT t2.* FROM T_SYS_DICT t2 WHERE t2.pid IN (SELECT t1.id FROM T_SYS_DICT t1 WHERE t1.pid IN (SELECT ID FROM T_SYS_DICT WHERE pid = 'b8d10191-8464-4463-a977-0daad9b7d6fc'));


DELETE FROM T_SYS_DICT t2 WHERE t2.pid IN (SELECT t1.id FROM T_SYS_DICT t1 WHERE t1.pid IN (SELECT ID FROM T_SYS_DICT WHERE pid = 'b8d10191-8464-4463-a977-0daad9b7d6fc'));
DELETE FROM T_SYS_DICT t1 WHERE t1.pid IN (SELECT ID FROM T_SYS_DICT WHERE pid = 'b8d10191-8464-4463-a977-0daad9b7d6fc');
DELETE FROM T_SYS_DICT WHERE pid = 'b8d10191-8464-4463-a977-0daad9b7d6fc';
DELETE FROM T_SYS_DICT WHERE id = 'b8d10191-8464-4463-a977-0daad9b7d6fc';


INSERT INTO T_SYS_DICT (id, name, code, pid, remark, seq, type, lv) VALUES ('b8d10191-8464-4463-a977-0daad9b7d6fc', '区划', 'REGION', NULL, NULL, 9, '0', NULL);

INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('5289fe9b-0428-4b7b-84f6-b21827520540','上海市','SH','b8d10191-8464-4463-a977-0daad9b7d6fc',0,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('76a9605c-a27d-4528-af23-f872139d6576','上海市','SHS','5289fe9b-0428-4b7b-84f6-b21827520540',0,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('3d18ae3a-c8c8-482d-b180-4b61799fc832','浦东新区','PDXQ','76a9605c-a27d-4528-af23-f872139d6576',0,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('84e32498-a1a0-4278-aba2-fc2f4fd5a053','徐汇区','XHQ','76a9605c-a27d-4528-af23-f872139d6576',1,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('503b0031-c39b-4ff3-a9ab-e606e5669107','黄浦区','HPQ','76a9605c-a27d-4528-af23-f872139d6576',2,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('4bb00f71-0bd4-4aec-9c13-9db96d016347','杨浦区','YPQ','76a9605c-a27d-4528-af23-f872139d6576',3,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('209ec857-93cb-47b3-ab0e-9ffa4fc93ea8','虹口区','HKQ','76a9605c-a27d-4528-af23-f872139d6576',4,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('cb3fabc8-f20a-4355-9f38-d9d750a8a1d6','闵行区','ZXQ','76a9605c-a27d-4528-af23-f872139d6576',5,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('f421e7b4-f0b0-442c-bcb2-6e6a873dff23','长宁区','CNQ','76a9605c-a27d-4528-af23-f872139d6576',6,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('c74ab78f-ffd8-4e8d-9e0f-c7ae44044195','普陀区','PTQ','76a9605c-a27d-4528-af23-f872139d6576',7,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('621b67df-ed77-4eed-923e-2341583f2461','宝山区','BSQ','76a9605c-a27d-4528-af23-f872139d6576',8,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('3025aca7-98ca-4072-8bcd-9788b28edb7f','静安区','JAQ','76a9605c-a27d-4528-af23-f872139d6576',9,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('1b6ac684-9a60-45d2-ab4d-7e4ce510c496','闸北区','ZBQ','76a9605c-a27d-4528-af23-f872139d6576',10,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('32019258-fede-4816-aec0-de2479c6e93a','卢湾区','LWQ','76a9605c-a27d-4528-af23-f872139d6576',11,0);
INSERT INTO T_SYS_DICT (id,name,code,pid,seq,type) VALUES ('08a97d86-4f1f-4ca7-a77f-865f7fba57cd','松江区','SJQ','76a9605c-a27d-4528-af23-f872139d6576',12,0);


<think>好的,我现在需要帮用户分析他们提供的Spark提交脚本。首先,我要仔细阅读这段代码,逐行理解每个参数的作用。用户可能希望了解这个脚本的具体配置以及如何优化或调整它。 首先,脚本以/usr/bin/spark2-submit开头,这说明他们使用的是Spark2的版本,可能在Hadoop或YARN环境中运行。接下来是--queue root.yarn_appcc,这指定了YARN的队列,资源分配可能根据队列设置不同,用户需要注意队列的权限和资源限制。 然后是--master yarn-client,这里指定了运行模式为YARN客户端,这意味着Driver程序会在提交任务的机器上运行,而不是在YARN集群中。用户可能需要注意客户端模式与集群模式的区别,比如资源管理和日志查看的差异。 --jars后面跟着多个JAR文件,ojdbc14、mysql-connector、OracleDateTypeInit等,这些是应用程序依赖的数据库驱动和其他库。需要确认这些JAR的路径是否正确,以及版本是否兼容,尤其是Oracle的驱动版本可能较旧,可能存在兼容性问题。 --files部分列出了配置文件和一些二进制文件,比如ip2region.xdb和IP2LOCATION的BIN文件。这些文件会被分发到各个Executor的工作目录,可能在代码中通过相对路径引用。需要确保文件路径正确,且应用程序能正确读取这些文件。 接下来的几个--conf参数设置了Spark的配置。spark.port.maxRetries=256,这可能是为了避免端口冲突,增加重试次数。spark.sql.shuffle.partitions=128,调整shuffle的分区数,影响并行度和性能。如果数据量较大,可能需要增加这个值,但用户可能根据实际情况调整。spark.network.timeout和spark.executor.heartbeatInterval设置网络超时和心跳间隔,防止因网络延迟导致的任务失败,确保Executor不会被错误地标记为失效。 资源分配部分:--num-executors 4指定了4个Executor,每个有3个核心和20G内存,Driver内存6G。需要根据集群的资源情况和任务需求评估是否合理。比如,如果任务需要更多内存处理大数据,可能需要调整executor-memory,但也要注意YARN的单个容器内存限制。 最后是--class和$jarname,指定主类和应用程序的JAR包。需要确认$fullclassname和$jarname变量是否正确替换,否则会导致找不到主类或JAR包。 用户可能想知道这些配置是否合理,或者是否存在潜在问题。比如,ojdbc14的版本是否适用于他们的Oracle数据库,或者Executor的内存分配是否足够。此外,YARN队列的资源配额是否允许这样的配置,避免任务因资源不足而排队或失败。 可能用户在实际运行中遇到了问题,比如任务超时、Executor丢失,或者依赖文件未找到。需要检查日志中的具体错误,结合这些配置进行分析。例如,如果出现网络超时,可能需要调整spark.network.timeout的值,或者检查集群网络状况。 总结来说,这段代码是一个典型的Spark on YARN的提交脚本,配置了资源、依赖、文件分发和部分性能参数。用户可能需要根据具体应用场景和集群环境调整这些参数,以达到最佳性能和稳定性。</think>以下是对您提供的Spark提交脚本的逐行分析及技术解释: ``` /usr/bin/spark2-submit ``` 1. **执行入口** - 使用Spark 2.x版本的提交工具(注意与spark-submit的区别) - 需要确认服务器环境变量是否配置了正确版本 ``` --queue root.yarn_appcc ``` 2. **资源队列配置** - 指定YARN队列`root.yarn_appcc`,用于资源隔离和优先级控制 - 需要确认该队列在YARN中的资源配置策略(CPU/MEM配额) ``` --master yarn-client ``` 3. **集群模式选择** - `yarn-client`模式:Driver运行在本地客户端 - 特点:调试日志直接输出到控制台,但客户端断开会导致任务失败 - 对比`yarn-cluster`模式更适合生产环境 ``` --jars $libpath/ojdbc14-10.2.0.4.0.jar,... ``` 4. **依赖库管理** - 加载多个数据库驱动: - Oracle JDBC驱动(注意版本10g可能存在的兼容性问题) - MySQL Connector 5.1(较旧版本,建议检查MySQL服务端版本) - 自定义Oracle日期类型处理库 - IP地理定位库:ip2region/IP2LOCATION的实现 ``` --files $confFileName,... ``` 5. **文件分发机制** - 配置文件`$confFileName`会分发到所有Executor的working目录 - IP数据库二进制文件(注意路径引用方式:`SparkFiles.get("filename")`) ``` --conf spark.port.maxRetries=256 ``` 6. **网络配置** - 端口冲突最大重试次数(默认16次),预防端口耗尽问题 ``` --conf spark.sql.shuffle.partitions=128 ``` 7. **性能调优参数** - 设置shuffle操作的分区数,影响并行度(需根据数据规模调整) - 默认200,降低到128可能为了减少小文件问题 ``` --conf spark.network.timeout=1300 --conf spark.executor.heartbeatInterval=1200 ``` 8. **容错配置** - 网络超时设为1300秒(21分钟),应对网络不稳定的长任务 - 心跳间隔1200秒,需保持`network.timeout > heartbeatInterval` ``` --num-executors 4 --executor-cores 3 --executor-memory 20G --driver-memory 6G ``` 9. **资源分配策略** - 集群总资源消耗:4 executors * (3 cores + 20GB) = 12 cores + 80GB - Executor内存分配建议:保留10%给堆外内存(实际JVM堆约18GB) - Driver内存设置合理(适合中等规模的数据收集操作) ``` --class $fullclassname $jarname ``` 10. **应用入口** - `$fullclassname`变量需指向包含main方法的完整类路径 - `$jarname`需确保包含编译后的胖jar包(需确认依赖打包正确性) **潜在改进点:** 1. 建议添加动态资源分配参数:`spark.dynamicAllocation.enabled=true` 2. 可考虑设置`spark.executor.memoryOverhead`(默认executor内存的10%) 3. 对于大数据量作业,`spark.sql.shuffle.partitions`可能需要调高 4. 建议添加日志配置参数:`--conf spark.eventLog.enabled=true` 该配置适合中等规模的数据处理任务,实际运行中需结合YARN队列资源配额和具体数据量进行参数优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

spencer_tseng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值