精华内容
下载资源
问答
  • ArcGIS的连接是基于属性的一个公共字段,将两个数据进行合并,可以是要素类与要素类的合并,也可以是和要素类的合并。通过属性连接,将另外一个要素类或者的信息与目标要素类进行合并,看起来就像是一张一样。...

    当我们有一些空间数据和一些业务数据(表),希望把业务数据和空间数据连接起来时,可以采用ArcGIS Desktop进行操作。本文将介绍如何在ArcGIS Destop中将表和空间数据关联起来。

    ArcGIS的连接是基于属性的一个公共字段,将两个数据进行合并,可以是要素类与要素类的合并,也可以是表和要素类的合并。通过属性连接,将另外一个要素类或者表的信息与目标要素类进行合并,看起来就像是一张表一样。然后利用新增的属性信息进行数据的查询、显示、分析等操作。

    具体操作:

    1. 打开WGS_84.mxd

    2. 分别查看省级行政区划点和省级行政区划面数据的属性表。在图层上右键,选择“打开属性表”:

    ea78a3251ac4df14e1e73df0188d2719.png

    省级行政区划点数据的属性如下:

    4274b4afacb3c9db2d7b0dddce393b00.png

    省级行政区划面数据的属性如下:

    1d7c788f1804c5dac4dacaaa62a1822c.png

    打开Excel表格数据浏览一下,看到里面的数据是2010年-2012年的各省生产总值和增长指数数据。

    d5fe963a0aff340877c0466cf68c000f.png

    3. 右键点击省级行政区划点要素,选择“连接和关联”——“连接”,打开“连接数据”窗口

    f4c359bfea3c5d331de9c8f1415b1683.png

    3d13a80158829b24ab7c021aa154a879.png

    省级行政点要素和Excel中都有各省的名称,因此选择数据中的名称字段进行连接。在连接数据中,选择“NAME”字段作为连接要基于的属性字段,在2中点击旁边的文件浏览,选中要连上的Excel表,这里要选择Excel表里的sheet表即“地区生产总值(亿元)$”:

    0ab5aeb3121772911253fa4f0717db65.png

    选择完成后,设置如下图:

    daf0170e31142400a6fda7a89de460d7.png

    点击“验证连接”查看连接汇总情况:

    e9822f95d15317fc6969110de8b25d93.png

    可以看到32个记录有31个已经匹配好了。依次点击“关闭”和“确定”,关掉连接窗口。

    4. 此时再打开省级区划点要素的属性表,可以查到已经连接上的属性信息如下:

    d37b612ddcb235fd045b599d43924a34.png

    有了业务信息之后,我们对空间数据进行渲染时,就可以使用业务信息去进行渲染,例如使用“生产总值”显示全国各省的GDP情况:

    9dd9d88cb125cf800ed0de65fc4a23bc.png

    展开全文
  • 一、数据准备要把Excel表里的数据导入到ArcGIS里的地图数据里面,对数据有一要求,就是数据都有相同的一字段或者说相同的一列。如下面的实例,地图数据和Excel数据里面有一列代表省份。注意数据里面的...

    6674ede8b5735e6d9181188d64b7bc44.gif

    一、数据准备

    要把Excel表里的数据导入到ArcGIS里的地图数据里面,对数据有一个要求,就是两份数据都有相同的一个字段或者说相同的一列。如下面的实例,地图数据和Excel数据里面有一列代表省份。注意两份数据里面的内容必须完全一致。比如说地图里面四川省的省份这一列内容是“四川”,而Excel里面是“四川省”,那么就不能对应起来。

    地图数据

    ec7145de2199e0f5875ffd9de5a5af83.png

    Excel数据

    3a0a783de4c60a3d5c446c1c05b09cb9.png

    二、把Excel数据加载到ArcGIS里面

    使用的按钮和加载地图数据的按钮是一样的(“+”号图案的)。有一点要注意到是选择加载文件看到Excel表的时候,这时候要在里面双击Excel表,不要直接点下面的加载。这样打开Excel表里面的列表,选择Sheet1然后加载进来即可。如果数据放在不同的Sheet里面,则选择对应的Sheet就行了,这样Excel数据就加载进来了。

    加载Excel数据

    005438e0721713151a5e2a7f60a2f2d7.png

    加载Excel数据2

    0b3c965d672851bd79b9fb23d0026965.png

    加载后数据

    57e4bb12bddf961b37314600e0a02fea.png

    三、联合属性表

    在左边的TOC面板中选择右键地图数据,然后使用"Join and Relates"-"Join"工具,打开对话框。

    Join

    2a68717a14694cc3f225a7390047b5f4.png

     在打开的对话框里面选择要Join的表,并选择相对应的字段。这里地图数据使用的是“NAME"字段,Excel数据选择的是"省份"字段,因为它们含有相同的内容

    Join2

    7ca3e09eada389bf36372d9a9f4c0ce5.png

     点击OK,然后再打开地图数据的属性表就可以看到Excel数据已经导入到ArcGIS地图数据里面了

    Join后的表

    11a7371f5b9c8da70d26c81286af0919.png

    保存数据

    ec0b0c5c52f8c4c4347a49e98e61211d.png

    四、导出地图数据

    因为Join后的属性表只保存在内存中,要是关掉程序再打开地图数据,Excel里的数据又没有了。

    所以需要将地图数据导出保存。方法也是在地图数据上右键,选择Data-Export Data,选择保存位置即可。

    加载刚保存的数据,这时候Excel里的数据就已经导入到地图数据里面了。

    结果

    27e8f50a0ceb4cc8b2391bebe845c7c4.png

    024634b9898f9a6216396b042e4e451d.gif024634b9898f9a6216396b042e4e451d.gif024634b9898f9a6216396b042e4e451d.gif

    -END-

    378ee89729e6dcb406542b9b864e5127.png

    版权声明:小智致力于分享精选,本篇推送文章来源地信论坛,本文版权归原作者所有,若涉及版权问题,烦请原作者联系我们,我们会在24小时内删除处理,并表示歉意,谢谢!566f3bf582d99b8c10934a36b1cf5693.png566f3bf582d99b8c10934a36b1cf5693.png566f3bf582d99b8c10934a36b1cf5693.png

    欢迎在下方留言与我们互动哦~

    展开全文
  • 一、数据准备要把Excel表里的数据导入到ArcGIS里的地图数据里面,对数据有一要求,就是数据都有相同的一字段,或者说相同的一列。如下面的实例,地图数据和Excel数据里面有一列代表省份。注意数据里面的...

    fc29ac242889aed09a884ce2e10f636a.gif

    7d71d68f85bbf2cd830f867a1cd17974.gif

    一、数据准备

    要把Excel表里的数据导入到ArcGIS里的地图数据里面,对数据有一个要求,就是两份数据都有相同的一个字段,或者说相同的一列。如下面的实例,地图数据和Excel数据里面有一列代表省份。注意两份数据里面的内容必须完全一致。比如说地图里面四川省的省份这一列内容是“四川”,而Excel里面是“四川省”,那么就不能对应起来。

    地图数据

    7e6a347d02e580a1b47d1511e992e01e.png

    Excel数据

    928f40a7f615e4f586b8e54abb983744.png

    二、把Excel数据加载到ArcGIS里面

    使用的按钮和加载地图数据的按钮是一样的(“+”号图案的)。有一点要注意到是选择加载文件看到Excel表的时候,这时候要在里面双击Excel表,不要直接点下面的加载。这样打开Excel表里面的列表,选择Sheet1然后加载进来即可。如果数据放在不同的Sheet里面,则选择对应的Sheet就行了。

    这样Excel表数据就加载进来了。

    加载Excel数据

    a914d67a4467d0226f1ffa9d238685c4.png

    加载Excel数据2

    67041129bac681299f106c3ef4de8858.png

    加载后数据

    f2ce98888ecd933a57d2fcf5861aec62.png

    三、联合属性表

    在左边的TOC面板中选择右键地图数据,然后使用"Join and Relates"-"Join"工具,打开对话框。

    Join

    b9b58b89689db7ce96903714d60a07fe.png

     在打开的对话框里面选择要Join的表,并选择相对应的字段。这里地图数据使用的是“NAME"字段,Excel数据选择的是"省份"字段,因为它们含有相同的内容.

    Join2

    84bef65a2555dd1e01ad92bb98f66f6b.png

     点击OK,然后再打开地图数据的属性表就可以看到Excel数据已经导入到ArcGIS地图数据里面了.

    Join后的表

    ec649748c12ef9b67196000b17894635.png

    保存数据

    209909dd65192777bfccca8c66b8a9e8.png

    四、导出地图数据

    因为Join后的属性表只保存在内存中,要是关掉程序再打开地图数据,Excel里的数据又没有了。

    所以需要将地图数据导出保存。方法也是在地图数据上右键,选择Data-Export Data,选择保存位置即可。

    加载刚保存的数据,这时候Excel里的数据就已经导入到地图数据里面了。

    结果

    e8b03f36dd373276c15a5094f43e8d7d.png

    -----END-----

    社群交流 / 原创投稿 / 商务合作

    (请添加下方小家微信:jiace03)

    7228fb44b47dd7bf68a0ac99bf4e051b.png

    来源:地信论坛

    推荐阅读

    【警醒】勘察测绘造假判几年?最高检这样回复!

    【技术】MapGIS IGServer(九州) 自主可控软硬一体化联合解决方案

    【视频】全国科普讲解大赛视频回放:遥感技术是啥?

    【点赞】测绘人在雄安 | 自然资源部发布雄安新区地质调查成果,这几点基本查清

    aec7b4a2357f16f1f19fbf4c49718c41.gif

    推荐关注

    639236b4c32f0b9e7ae70b8197dff25d.png

    1060ecdcf815428d71bd1050b3042628.png

    温馨提示:近期,微信公众号信息流改版。每个用户可以设置 常读订阅号,这些订阅号将以大卡片的形式展示。因此,如果不想错过“测绘之家”的文章,你一定要进行以下操作:进入“测绘之家”公众号 → 点击右上角的 ··· 菜单 → 选择设为星标

    fd6aaae70a5886412b961501adb9bbad.gif

    点分享

    714daa2b28283932ae08fb057c6562bb.gif

    点点赞

    571489a96add6c8813bb74e181ce6645.gif

    点在看

    ↓↓↓点击下方“

    展开全文
  • 概述有的时候我们在操作数据库时会将两个或多个数据表关联起来通过一些条件筛选数据,在关联表时我们要遵循一些原则,这样会使我们编写的SQL 语句在效率上快很多。一、需要优化的查询使用explain常见的扫描类型有:...

    概述

    有的时候我们在操作数据库时会将两个或多个数据表关联起来通过一些条件筛选数据,在关联表时我们要遵循一些原则,这样会使我们编写的SQL 语句在效率上快很多。

    030c9ec5b5097f7976fdf91b17066986.png

    一、需要优化的查询

    使用explain常见的扫描类型有:system>const>eq_ref>ref>range>index>ALL 其扫描速度由快到慢;

    如果Extra出现了

    • Using temporary;
    • 有分页时出现了Using filesort则表示使用不了索引
    • rows过多,或者几乎是全表的记录数;
    • key 是 (NULL);
    • possible_keys 出现过多(待选)索引

    都需要做优化。

    df31d16f2c837302879d6551bd88e8ed.png

    二、驱动表的含义

    MySQL 表关联的算法是 Nest Loop Join,是通过驱动表的结果集作为循环基础数据,然后一条一条地通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果:

    • EXPLAIN 结果中,第一行出现的表就是驱动表
    • 对驱动表可以直接排序,对非驱动表(的字段排序)需要对循环查询的合并结果(临时表)进行排序(Important!),即using temporary;
    • [驱动表] 的定义为:1)满足查询条件的记录行数少的表为[驱动表];2)未指定查询条件时,行数少的表为[驱动表](Important!)。
    • 优化的目标是尽可能减少JOIN中Nested Loop的循环次数,以此保证:永远用小结果集驱动大结果集(Important!)!:A JOIN B,A为驱动,A中每一行和B进行循环JOIN,看是否满足条件,所以当A为小结果集时,越快。
    • NestedLoopJoin实际上就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果。如果还有第三个参与Join,则再通过前两个表的Join结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据,如此往复。

    如果还有第三个参与 Join,则再通过前两个表的 Join 结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据,如此往复,基本上MySQL采用的是最容易理解的算法来实现join。所以驱动表的选择非常重要,驱动表的数据小可以显著降低扫描的行数。

    MySQL的 Join 都是通过嵌套循环来实现的。驱动结果集越大,所需要循环就越多,那么被驱动表的访问次数自然也就越多,而每次访问被驱动表,即使需要的逻辑 IO 很少,循环次数多了,总量也不可能小,而且每次循环都不能避免消耗CPU,所以 CPU 运算量也会跟着增加。

    当有order by条件时,如select * from a inner join b where 1=1 and other condition order by a.col;使用explain解释语句;

    • 如果第一行的驱动表为a,则效率会非常高,无需优化;
    • 否则,因为只能对驱动表字段直接排序的缘故,会出现using temporary,所以此时需要使用STRAIGHT_JOIN明确a为驱动表,来达到使用a.col上index的优化目的;或者使用left join而STRAIGHT_JOIN为inner join且使用a作为驱动表。

    三、Mysql的STRAIGHT_JOIN

    STRAIGHT_JOIN,在数据量大的联表查询中灵活运用的话,能大大缩短查询时间。

    首先来解释下STRAIGHT_JOIN到底是用做什么的:

    STRAIGHT_JOIN is similar to JOIN, except that the left table is always read before the right table. This can be used for those (few) cases for which the join optimizer puts the tables in the wrong order.

    意思就是说STRAIGHT_JOIN功能同join类似,但能让左边的表来驱动右边的表,能改表优化器对于联表查询的执行顺序。

    需要注意的是:

    STRAIGHT_JOIN只适用于inner join,并不适用于left join,right join。(因为left join,right join已经代表指定了表的执行顺序)

    尽可能让优化器去判断,因为大部分情况下mysql优化器是比人要聪明的。而且你可能不能确定未来表的大小变化。使用STRAIGHT_JOIN一定要慎重。


    四、in、exists、join与驱动表的选择关系

    以下两张表的dept_id字段应建立索引。

    1、in

    SELECT * FROM t_emp WHERE dept_id IN  (SELECT dept_id  FROM t_dept);// 这条SQL 语句相当于:for SELECT dept_id FROM t_dept for SELECT * FROM t_emp WHERE t_emp.dept_id = t_dept.dept_id

    虽然SQL 语句是主查询员工信息,子查询部门id ,但是MySql 的执行顺序会先执行子查询,再执行主查询,然后获得我们要查询的数据。

    通过上面IN 操作的执行顺序,可以看到是先查询部门表再根据部门表查出来的id 信息查询员工信息。一般情况下员工表肯定会有很多的员工信息,但是部门表只会有很少的数据信息,如果先通过查询部门表信息查询员工信息,以小表(t_dept)的查询结果,去驱动大表(t_emp),这种查询方式是效率很高的

    2、exists

    SELECT *  FROM t_emp  WHERE EXISTS  (SELECT 1  FROM t_dept  WHERE t_dept.dept_id = t_emp.dept_id);// 这条SQL 语句相当于: for SELECT * FROM t_emp  for SELECT * FROM t_dept WHERE t_dept.dept_id = t_emp.dept_id 

    将主查询的数据放在子查询中做条件验证,根据结果TRUE 和 FALSE 来决定主查询中的数据是否需要保留。EXISTS 子查询只返回TRUE 或 FALSE ,因此子查询中的SELECT * 可以是SELECT 1 或者其他,MySql 的官方说在实际执行时会忽略SELECT 清单,因此是没有 什么区别的。EXISTS 子查询其实在执行时,MySql 已经对它做了一些优化并不是对每条数据进行对比。

    可以看出使用EXISTS 查询时,首先查询员工表,然后根据部门表的查询条件返回的TRUE 或者 FALSE ,再决定员工表中的信息是否需要保留。这不就是用大的数据表(t_emp) 去驱动小的数据表小的数据表(t_dept)了吗?虽然这种方式也可以查出想要的数据,但是这种查询方式是不值得提倡的。

    3、join

    3ca47957772436c123bf7bdedcecb7ba.png

    3.1、join选择驱动表

    为什么一般情况下join的效率要高于left join很多?一般情况下参与联合查询的两张表都会一大一小,如果是join,在没有其他过滤条件的情况下MySQL会选择小表作为驱动表,但是left join一般用作大表去join小表,而left join本身的特性决定了MySQL会用大表去做驱动表,这样下来效率就差了不少,

    总之:

    1).当使用left join时,左表是驱动表,右表是被驱动表

    2).当使用right join时,右表时驱动表,左表是驱动表

    3).当使用join时,mysql会选择数据量比较小的表作为驱动表,大表作为被驱动表

    考虑到查询效率,能用join就不要用leftight join 使用外连接非常影响查询效率,就算要用也要用数据量最小的表作为驱动表来驱动大表。

    3.2、join查询在有索引条件下

    驱动表有索引不会使用到索引被驱动表建立索引会使用到索引

    在以小表驱动大表的情况下,再给大表建立索引会大大提高执行速度

    3.3、left join 的通用法则

    凡是不符合 WHERE 子句中条件的记录都不会参与连接。只要在搜索条件中指定关于被驱动表相关列的值不为 NULL,那么外连接中在被驱动表中找不到符合 ON 子句条件的驱动表记录也就被排除出最后的结果集了,也就是说:在这种情况下:外连接和内连接也就没有什么区别了

    即:如果where条件中含有右表的非空条件(除开is null),则left join语句等同于join语句,可直接改写成join语句。

    3.4、如何优化left join:

    1)、条件中尽量能够过滤一些行将驱动表变得小一点,用小表去驱动大表

    2)、右表的条件列一定要加上索引(主键、唯一索引、前缀索引等),最好能够使type达到range及以上(ref,eq_ref,const,system)


    后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

    78787bbd0ed020bfcf1598a0e27bd20e.gif
    展开全文
  • 有一次,组长交给他开发一个ETL的任务,将两个hive数据通过某个字段关联起来。秦奋一边写着Spark SQL的任务,心里边一边嘀咕着“组长为什么总是交给我一些这么简单的工作,我希望做一些更有挑战的工作”…… 在...
  • 当把中的信息拆分成多个表来存储的时候会有一问题:如何中的数据关联起来? 答:使用主键和外键来进行关联。使用主外键就能不同中的数据关联起来。 转载于:https://www.cnblogs.com/ha...
  • 通过组合函数上面两个 reducers 组合起来,如 <pre><code> javascript function rootReducer(state = {}, action) { return { films: filmReducer(state.films, action), filter: filterReducer...
  • 使用外键关联将两个表联结起来。 完整代码已上传github,地址为欢迎fork以及star ##实现的功能 利用PageHelper插件分页显示数据 补充商品数据中的商品名,货号需要检测格式是否符合要求以及数据库中是否存在,这里...
  • excel的使用

    2012-11-25 17:06:01
    实际输入的时候,通常应用等差数列输入法,先输入前二个值,定出自变量中数与数之间的步长,然后选中A2和A3两个单元格,使这二项变成一个带黑色边框的矩形,再用鼠标指向这黑色矩形的右下角的小方块“■”,当光标...
  • 什么是NoSQL数据库?

    2014-07-21 23:24:20
    下面说一点题外话,如果想要使服务器能够轻松地处理更大量的数据,那么只有两个选择:一是提升性能,二是增大规模。下面我们来整理一下这两者的不同。 首先,提升性能指的就是通过提升现行服务器自身的性能来提高...
  • 首页请求数据之后,根据热门度返回多个数据数据存储到list集合中,并且它转换为JSON格式数据,返回到页面,页面解析数据并且显示。  商场则负责显示所有的商品数据,实现侧边栏点击指定的类别之后,显示对应...
  • arcgis工具

    2012-10-22 22:37:31
    XY 数据表,指定X 坐标字段(东经)和Y 坐标字段(北纬),按“编辑”按钮,选择坐标系统。一般GPS系统采用的坐标系统为WGS_1984。 方法二.直接用TOOL工具下的ADD XY 可以单个加点 17. 用任意多边形剪切栅格数据...
  • 本部分内容通过各项数据挖掘的数据分析和特征之间关联性分析方法,介绍常用的数据可视化分析方法。 2.1 总览数据概况 2.2 判断数据缺失和异常 2.3 了解预测值的分布 2.4 特征分为类别特征和数字特征 2.5 数字特征...
  • CruiseYoung提供的带有详细书签的电子书籍目录 ... SQL_TRACE和10046事件是会话级非常有用的两个工具,它们可以捕获会话当中SQL执行的详细信息,其中10046事件还可以获得SQL绑定变量的信息及发生的等待事件。...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    � 丰富的数据业务,导致数据流量的显著增加 。 � 手机来源增加,价格更为低廉。 对软件开发者的影响 � 因为 Android 移动软件平台抱持开放互通的观念,势必吸引不少自由软件的拥护者。 � 开发方向有三重点 :...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    第七章 达 式 .58 7.1 操 作 符 .58 7.2 算术操作符和算术表达式.59 7.3 赋值操作符和赋值表达式.64 7.4 关系操作符和关系表达式.65 <<page 2>> page begin==================== 7.5 逻辑操作符和...
  • 数据库课程设计(基于B/S)

    热门讨论 2008-12-28 15:28:06
    ②原则2 (确定联系):两个或多个实体间的关联与结合,如主管,从属,组成,占有,作用,配合,协同等等,当需要予以关注时,应作为联系。实体间的联系可分为一对一、一对多、多对多等三类,在确定联系时还要确定其...
  • c#学习笔记.txt

    2008-12-15 14:01:21
    委托是一个数据结构,该数据结构引用一个静态方法,或引用一个对象实例和该对象的实例方法。在 C 或 C 中与委托最接近的是函数指针,但函数指针只能引用静态函数,而委托可以同时引用静态方法和实例方法。在后一种...
  • C#微软培训资料

    2014-01-22 14:10:17
    第七章 达 式 .58 7.1 操 作 符 .58 7.2 算术操作符和算术表达式.59 7.3 赋值操作符和赋值表达式.64 7.4 关系操作符和关系表达式.65 <<page 2>> page begin==================== 7.5 逻辑操作符和...
  • 比如,两个相同行业不同地区的人使用同一个DTD文件来作为文档创建规范,那么他们的数据就很容易交换和共享。网上有其他人想补充数据,也只需要根据公用的DTD规范来建立文档,就立刻可以加入。 目前,已经有数量众多...
  • java 面试题 总结

    2009-09-16 08:45:34
    抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类...
  • 上面这段代码,我们首先创建了一个Person类,包含了Name和Age两个属性,毋庸置疑,Person类是引 用类型,Name也是,因为它是string类型的(但string是很特殊的引用类型,后面专门有一篇文章来讨论),但Age则是值...

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
关键字:

怎么将两个数据表关联起来