pgsql的主键存储方式

pgsql的主键存储方式,第1张

PostgreSQL的稳定性极强,Innodb等索引在崩溃,断电之类的灾难场景下 抗击打能力有了长足进步,然而很多 MqSQL用户 都遇到过 Server级的数据库丢失的场景 -- MySQL系统库是 MyISAM,相比之下,PG数据库这方面要更好一些。

任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以位置双曲线甚至对数曲线,到 顶峰之后不在下降,而MySQL明显出现一个波峰后下滑(5.5版本 之后,在企业级版本中有个插件可以改善很多,不过需要付费)。

PG多年来在 GIS(地理信息)领域处于优势地位,因为它有丰富的几何类型,PG有大量字典,数组,bitmap等数据类型,相比之下 MySQL就差很多, Instagram就是因为 PG的空间数据库 扩展 POSTGIS远远强于 MySQL的 my spatial 而采用 PgSQL的。

PG的“无锁定”特性非常突出,甚至包括 vacuum这样的整理数据空间的 *** 作,这个和PGSQL的MVCC实现有关系。

PG可以使用函数 和 条件索引,这使得 PG数据库的调优非常灵活, MySQL就没有这个功能,条件索引在 web应用中 很重要。

PG有极其强悍的 SQL编程能力(9.x 图灵完备,支持递归!),有非常丰富的统计函数和统计语法支持,比如分析函数(Oracle的叫法,PG里叫Window函数),还可以用多种语言来写存储过程,对于 R的支持也很好。这一点MySQL就差很多,很多分析功能都不支持,腾讯内部的存储主要是 MySQL,但是数据分析主要是 Hadoop+ PgSQL。

PG的有多种集群架构可以选择,plproxy可以之hi语句级的镜像或分片,slony可以进行字段级的同步配置,standby 可以构建 WAL文件级或流式的读写分离集群,同步频率和集群策略调整方便。

一般关系型数据库字符串有长度限制 8k 左右,无限长 TEXT类型的功能受限,只能作为外部大数据访问。而 PG 的 TEXT 类型 可以直接访问且无长度限制, SQL语法内置 正则表达式,可以索引,还可以全文检索,或使用 xml xpath。用 PG的话,文档数据库都可以省了。

PgSQL对于 numa 架构的支持比 MySQL强一些,比 MySQL对于读的性能更好一些, PgSQL提交可以完全异步提交,而 MySQL的内存表不够实用(因为表锁的原因)。

pgsql除了存储正常的数据类型外,还支持存储

array,不管是一维数组还是多维数组均支持。

json和jsonb,相比使用 text存储要高效很多。

json和 jsonb在更高的层面上看起来几乎是一样的,但是存储实现上是不同的。

json存储完的文本,json列会每次都解析存储的值,它不支持索引,但 可以为创建表达式索引。

jsonb存储的二进制格式,避免了重新解析数据结构。它支持索引,这意味着 可以不使用指定索引就能查询任何路径。

当我们比较写入数据速度时,由于数据存储 的方式的原因,jsonb会比 json 稍微的慢一点。json列会每次都 解析存储的值,这意味着键的顺序要和输入的 时候一样。但是 jsonb不同,以二进制格式存储且不保证键的顺序。因此如果有软件需要依赖键的顺序,jsonb可能不是最佳选择。使用 jsonb的优势还在于可以轻易的整合关系型数据和非关系型 数据 ,PostgreSQL对于 mongodb这类数据库是一个不小的威胁,毕竟如果一个表中只有一列数据的类型是半结构化的,没有必要为了迁就它而整个表的设计都采用 schemaless的结构。

1. CPU限制

PGSQL

没有CPU核心数限制,有多少CPU核就用多少

MySQL

能用128核CPU,超过128核用不上

2. 配置文件参数

PGSQL

一共有255个参数,用到的大概是80个,参数比较稳定,用上个大版本配置文件也可以启动当前大版本数据库

MySQL

一共有707个参数,用到的大概是180个,参数不断增加,就算小版本也会增加参数,大版本之间会有部分参数不兼容情况

3. 第三方工具依赖情况

PGSQL

只有高可用集群需要依靠第三方中间件,例如:patroni+etcd、repmgr

MySQL

大部分 *** 作都要依靠percona公司的第三方工具(percona-toolkit,XtraBackup),工具命令太多,学习成本高,高可用集群也需要第三方中间件,官方MGR集群还没成熟

4. 高可用主从复制底层原理

PGSQL

物理流复制,属于物理复制,跟SQL Server镜像/AlwaysOn一样,严格一致,没有任何可能导致不一致,性能和可靠性上,物理复制完胜逻辑复制,维护简单

MySQL

主从复制,属于逻辑复制,(sql_log_bin、binlog_format等参数设置不正确都会导致主从不一致)

大事务并行复制效率低,对于重要业务,需要依赖 percona-toolkit的pt-table-checksum和pt-table-sync工具定期比较和修复主从一致

主从复制出错严重时候需要重搭主从

MySQL的逻辑复制并不阻止两个不一致的数据库建立复制关系

5. 从库只读状态

PGSQL

系统自动设置从库默认只读,不需要人工介入,维护简单

MySQL

从库需要手动设置参数super_read_only=on,让从库设置为只读,super_read_only参数有bug,链接:https://baijiahao.baidu.com/s?id=1636644783594388753&wfr=spider&for=pc

6. 版本分支

PGSQL

只有社区版,没有其他任何分支版本,PGSQL官方统一开发,统一维护,社区版有所有功能,不像SQL Server和MySQL有标准版、企业版、经典版、社区版、开发版、web版之分

国内外还有一些基于PGSQL做二次开发的数据库厂商,例如:Enterprise DB、瀚高数据库等等,当然这些只是二次开发并不算独立分支

MySQL

由于历史原因,分裂为三个分支版本,MariaDB分支、Percona分支 、Oracle官方分支,发展到目前为止各个分支基本互相不兼容

Oracle官方分支还有版本之分,分为标准版、企业版、经典版、社区版

7. SQL特性支持

PGSQL

SQL特性支持情况支持94种,SQL语法支持最完善,例如:支持公用表表达式(WITH查询)

MySQL

SQL特性支持情况支持36种,SQL语法支持比较弱,例如:不支持公用表表达式(WITH查询)

关于SQL特性支持情况的对比,可以参考:http://www.sql-workbench.net/dbms_comparison.html

8. 主从复制安全性

PGSQL

同步流复制、强同步(remote apply)、高安全,不会丢数据

PGSQL同步流复制:所有从库宕机,主库会罢工,主库无法自动切换为异步流复制(异步模式),需要通过增加从库数量来解决,一般生产环境至少有两个从库

手动解决:在PG主库修改参数synchronous_standby_names ='',并执行命令: pgctl reload ,把主库切换为异步模式

主从数据完全一致是高可用切换的第一前提,所以PGSQL选择主库罢工也是可以理解

MySQL

增强半同步复制 ,mysql5.7版本增强半同步才能保证主从复制时候不丢数据

mysql5.7半同步复制相关参数:

参数rpl_semi_sync_master_wait_for_slave_count 等待至少多少个从库接收到binlog,主库才提交事务,一般设置为1,性能最高

参数rpl_semi_sync_master_timeout 等待多少毫秒,从库无回应自动切换为异步模式,一般设置为无限大,不让主库自动切换为异步模式

所有从库宕机,主库会罢工,因为无法收到任何从库的应答包

手动解决:在MySQL主库修改参数rpl_semi_sync_master_wait_for_slave_count=0

9. 多字段统计信息

PGSQL

支持多字段统计信息

MySQL

不支持多字段统计信息

10. 索引类型

PGSQL

多种索引类型(btree , hash , gin , gist , sp-gist , brin , bloom , rum , zombodb , bitmap,部分索引,表达式索引)

MySQL

btree 索引,全文索引(低效),表达式索引(需要建虚拟列),hash 索引只在内存表

11. 物理表连接算法

PGSQL

支持 nested-loop join 、hash join 、merge join

MySQL

只支持 nested-loop join

12. 子查询和视图性能

PGSQL

子查询,视图优化,性能比较高

MySQL

视图谓词条件下推限制多,子查询上拉限制多

13. 执行计划即时编译

PGSQL

支持 JIT执行计划即时编译,使用LLVM编译器

MySQL

不支持执行计划即时编译

14. 并行查询

PGSQL

并行查询(多种并行查询优化方法),并行查询一般多见于商业数据库,是重量级功能

MySQL

有限,只支持主键并行查询

15. 物化视图

PGSQL

支持物化视图

MySQL

不支持物化视图

16. 插件功能

PGSQL

支持插件功能,可以丰富PGSQL的功能,GIS地理插件,时序数据库插件, 向量化执行插件等等

MySQL

不支持插件功能

17. check约束

PGSQL

支持check约束

MySQL

不支持check约束,可以写check约束,但存储引擎会忽略它的作用,因此check约束并不起作用(mariadb 支持)

18. gpu 加速SQL

PGSQL

可以使用gpu 加速SQL的执行速度

MySQL

不支持gpu 加速SQL 的执行速度

19. 数据类型

PGSQL

数据类型丰富,如 ltree,hstore,数组类型,ip类型,text类型,有了text类型不再需要varchar,text类型字段最大存储1GB

MySQL

数据类型不够丰富

20. 跨库查询

PGSQL

不支持跨库查询,这个跟Oracle 12C以前一样

MySQL

可以跨库查询

21. 备份还原

PGSQL

备份还原非常简单,时点还原 *** 作比SQL Server还要简单,完整备份+wal归档备份(增量)

假如有一个三节点的PGSQL主从集群,可以随便在其中一个节点做完整备份和wal归档备份

MySQL

备份还原相对不太简单,完整备份+binlog备份(增量)

完整备份需要percona的XtraBackup工具做物理备份,MySQL本身不支持物理备份

时点还原 *** 作步骤繁琐复杂

22. 性能视图

PGSQL

需要安装pg_stat_statements插件,pg_stat_statements插件提供了丰富的性能视图:如:等待事件,系统统计信息等

不好的地方是,安装插件需要重启数据库,并且需要收集性能信息的数据库需要执行一个命令:create extension pg_stat_statements命令

否则不会收集任何性能信息,比较麻烦

MySQL

自带PS库,默认很多功能没有打开,而且打开PS库的性能视图功能对性能有影响(如:内存占用导致OOM bug)

23. 安装方式

PGSQL

有各个平台的包rpm包,deb包等等,相比MySQL缺少了二进制包,一般用源码编译安装,安装时间会长一些,执行命令多一些

MySQL

有各个平台的包rpm包,deb包等等,源码编译安装、二进制包安装,一般用二进制包安装,方便快捷

24. DDL *** 作

PGSQL

加字段、可变长字段类型长度改大不会锁表,所有的DDL *** 作都不需要借助第三方工具,并且跟商业数据库一样,DDL *** 作可以回滚,保证事务一致性

MySQL

由于大部分DDL *** 作都会锁表,例如加字段、可变长字段类型长度改大,所以需要借助percona-toolkit里面的pt-online-schema-change工具去完成 *** 作

将影响减少到最低,特别是对大表进行DDL *** 作

DDL *** 作不能回滚

25. 大版本发布速度

PGSQL

PGSQL每年一个大版本发布,大版本发布的第二年就可以上生产环境,版本迭代速度很快

PGSQL 9.6正式版推出时间:2016年

PGSQL 10 正式版推出时间:2017年

PGSQL 11 正式版推出时间:2018年

PGSQL 12 正式版推出时间:2019年

MySQL

MySQL的大版本发布一般是2年~3年,一般大版本发布后的第二年才可以上生产环境,避免有坑,版本发布速度比较慢

MySQL5.5正式版推出时间:2010年

MySQL5.6正式版推出时间:2013年

MySQL5.7正式版推出时间:2015年

MySQL8.0正式版推出时间:2018年

26. returning语法

PGSQL

支持returning语法,returning clause 支持 DML 返回 Resultset,减少一次 Client <->DB Server 交互

MySQL

不支持returning语法

27. 内部架构

PGSQL

多进程架构,并发连接数不能太多,跟Oracle一样,既然跟Oracle一样,那么很多优化方法也是相通的,例如:开启大页内存

MySQL

多线程架构,虽然多线程架构,但是官方有限制连接数,原因是系统的并发度是有限的,线程数太多,反而系统的处理能力下降,随着连接数上升,反而性能下降

一般同时只能处理200 ~300个数据库连接

28. 聚集索引

PGSQL

不支持聚集索引,PGSQL本身的MVCC的实现机制所导致

MySQL

支持聚集索引

29. 空闲事务终结功能

PGSQL

通过设置 idle_in_transaction_session_timeout 参数来终止空闲事务,比如:应用代码中忘记关闭已开启的事务,PGSQL会自动查杀这种类型的会话事务

MySQL

不支持终止空闲事务功能

30. 应付超大数据量

PGSQL

不能应付超大数据量,由于PGSQL本身的MVCC设计问题,需要垃圾回收,只能期待后面的大版本做优化

MySQL

不能应付超大数据量,MySQL自身架构的问题

31. 分布式演进

PGSQL

HTAP数据库:cockroachDB、腾讯Tbase

分片集群: Postgres-XC、Postgres-XL

MySQL

HTAP数据库:TiDB

分片集群: 各种各样的中间件,不一一列举

32. 数据库的文件名和命名规律

PGSQL

PGSQL在这方面做的比较不好,DBA不能在 *** 作系统层面(停库状态下)看清楚数据库的文件名和命名规律,文件的数量,文件的大小

一旦 *** 作系统发生文件丢失或硬盘损坏,非常不利于恢复,因为连名字都不知道

PGSQL表数据物理文件的命名/存放规律是: 在一个表空间下面,如果没有建表空间默认在默认表空间也就是base文件夹下,例如:/data/base/16454/3599

base:默认表空间pg_default所在的物理文件夹

16454:表所在数据库的oid

3599:就是表对象的oid,当然,一个表的大小超出1GB之后会再生成多个物理文件,还有表的fsm文件和vm文件,所以一个大表实际会有多个物理文件

由于PGSQL的数据文件布局内容太多,大家可以查阅相关资料

当然这也不能全怪PGSQL,作为一个DBA,时刻做好数据库备份和容灾才是正道,做介质恢复一般是万不得已的情况下才会做

MySQL

数据库名就是文件夹名,数据库文件夹下就是表数据文件,但是要注意表名和数据库名不能有特殊字符或使用中文名,每个表都有对应的frm文件和ibd文件,存储元数据和表/索引数据,清晰明了,做介质恢复或者表空间传输都很方便

33. 权限设计

PGSQL

PGSQL在权限设计这块是比较坑爹,抛开实例权限和表空间权限,PGSQL的权限层次有点像SQL Server,db=》schema=》object

要说权限,这里要说一下Oracle,用Oracle来类比

在ORACLE 12C之前,实例与数据库是一对一,也就是说一个实例只能有一个数据库,不像MySQL和SQL Server一个实例可以有多个数据库,并且可以随意跨库查询

而PGSQL不能跨库查询的原因也是这样,PGSQL允许建多个数据库,跟ORACLE类比就是有多个实例(之前说的实例与数据库是一对一)

一个数据库相当于一个实例,因为PGSQL允许有多个实例,所以PGSQL单实例不叫一个实例,叫集簇(cluster),集簇这个概念可以查阅PGSQL的相关资料

PGSQL里面一个实例/数据库下面的schema相当于数据库,所以这个schema的概念对应MySQL的database

注意点:正因为是一个数据库相当于一个实例,PGSQL允许有多个实例/数据库,所以数据库之间是互相逻辑隔离的,导致的问题是,不能一次对一个PGSQL集簇下面的所有数据库做 *** 作

必须要逐个逐个数据库去 *** 作,例如上面说到的安装pg_stat_statements插件,如果您需要在PGSQL集簇下面的所有数据库都做性能收集的话,需要逐个数据库去执行加载命令

又例如跨库查询需要dblink插件或fdw插件,两个数据库之间做查询相当于两个实例之间做查询,已经跨越了实例了,所以需要dblink插件或fdw插件,所以道理非常简单

权限 *** 作也是一样逐个数据库去 *** 作,还有一个就是PGSQL虽然像SQL Server的权限层次结构db=》schema=》object,但是实际会比SQL Server要复杂一些,还有就是新建的表还要另外授权

在PGSQL里面,角色和用户是一样的,对新手用户来说有时候会傻傻分不清,也不知道怎么去用角色,所以PGSQL在权限设计这一块确实比较坑爹

MySQL

使用mysql库下面的5个权限表去做权限映射,简单清晰,唯一问题是缺少权限角色

user表

db表

host表

tables_priv表

columns_priv表

1. 架构对比

Mysql:多线程

PostgreSql:多进程

多线程架构和多进程架构之间没有绝对的好坏,例如oracle在unix上是多进程架构,在windows上是多线程架构。

2. 对存储过程及事务的支持能力

MySql对于无事务的MyISAM表,采用表锁定,一个长时间运行的查询很可能会长时间的阻碍,而PostgreSQL不会尊在这种问题。

PostgreSQL支持存储过程,要比MySql好,具备本地缓存执行计划的能力。

3. 稳定性及性能

高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySql 明显出现一个波峰后下滑(5.5版本后Mysql企业版有优化,需要付费)

MySql的InnoDB引擎,可以充分优化利用系统的所有内存,超大内存下PG对内存使用的不那么充分(需要根据内存情况合理分配)。

4. 高可用

InnoDB的基于回滚实现的 MVCC 机制,对于 PG 新老数据一起放的基于 XID 的 MVCC机制,是占优的。新老数据一起存放,需要定时触发 VACUUM,会带来多余的 IO 和数据库对象加锁开销,引起数据库整理的并发能力下降。而且 VACUUM 清理不及时,还可能会引发数据膨胀

5. 数据同步方式:

Mysql到现在也是异步复制,pgsql可以做到同步、异步、半同步复制。

Mysql同步是基于binlog复制,属于逻辑复制,类似于oracle golden gate,是基于stream的复制,做到同步很困难,这种方式更加适合异步复制;

Pgsql的同是基于wal,属于物理复制,可以做到同步复制。同时,pgsql还提供stream复制。

Mysql的复制可以用多级从库,但是在9.2之前,PgSql不能用从库带从库。

Pgsql的主从复制属于物理复制,相对于Mysql基于binlog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。

6. 权限控制对比

MySql允许自定义一套不同的数据级、表级和列的权限,运行指定基于主机的权限

Mysql的merge表提供了 一个独特管理多个表的方法。myisampack可以对只读表进行压缩,以后仍然可以直接访问该表中的行。

7. SQL语句支持能力

PG有极其强悍的 SQL 编程能力(9.x 图灵完备,支持递归!),有非常丰富的统计函数和统计语法支持,例如分析函数(Oracle的叫法,PG里叫window函数)

支持用多种语言来写存储过程,对于R的支持也很好。这一点上Mysql就差的很远,很多分析功能都不支持。

PgSql对表名大小写的处理,只有在Sql语句中,表明加双引号,才区分大小写。

在Sql的标准实现上要比Mysql完善,而且功能实现比较严谨。

对表连接支持比较完整,优化器的功能比较完整,支持的索引类型很多,复杂查询能力较强。

Mysql采用索引组织表,这种存储方式非常适合基于主键匹配的查询、删改 *** 作,但是对表结果设计存在约束;

Mysql的Join *** 作的性能非常的差,只支持Nest Join,所以一旦数据量大,性能就非常的差。PostgresSQL除了支持 Nest Join 和 Sort Merge Join,PostgreSQL还支持正则表达式查询,MySql不支持。

8. 数据类型支持能力

PostgreSQL可以更方便的使用UDF(用户定义函数)进行扩展。

有丰富的几何类型,实际上不止集合类型,PG有大量的字典、数组、bitmap等数据类型,因此PG多年来在 GIS 领域处于优势地位。相比之下Mysql就差很多,instagram就是因为PG的空间数据扩展 PostGIS远远强于 MySql的 my spatial 而采用 PgSql的。Mysql中的空间数据类型有4种,分别是 CEOMETRY、POINT、LINESTRING、POLYGON,其空间索引只能在存储引擎为 MyiSam的表中创建,用SPATIAL关键字进行扩展,使得能够用于创建正规索引类型的语法创建空间索引。创建空间索引的列,必须将其声明为NOT NULL。不同的存储亲情有差别。MyISAM和InnoDB 都支持 spatial extensions,但差别在于:如果使用MyISAM,可以建立 spatial index,而 InnoDB是不支持的。

pgsql对json支持比较好,还有很逆天的fdw功能,就是把别的数据库中的表当自己的用。

pgsql的字段类型支持的多,有很多mysql没有的类型,但是实际中有时候用到。

一半关系型数据库的字符串长度8k左右,无限长的 TEXT 类型的功能受限,只能作为外部带数据访问。而 PG 的 TEXT 类型可以直接访问,SQL 语法内置正则表达式,可以索引,还可以全文检索,或使用 xml xpath。用 PG 的话,文档数据库都可以省了。

postgresql 有函数,用于报表、统计很方便

PG支持 R-Trees这样可扩展的索引类型,可以方便的处理一些特殊数据。

PG可以使用函数和条件所以,使得数据库的调优非常灵活,mysql就没有这个功能,条件索引在web应用中很重要。

9. 如可过程容错能力

大批量数据入库,PostgreSql要求所有的数据必须完全满足要求,有一条错误,整个数据入库过程失败。MySql无此问题。

10. 表组织方式

pgsql用继承的方式实现分区表,让分区表的使用不方便且性能差,这点比不上mysql。

pg主表采用堆表存放,MySQL采用索引组织表,能够支持比MySql更大的数据量。

MySql分区表的实现要优于PG的基于继承表的分区实现,主要体现在分区个数达到成千上万后的处理性能差异很大。

11. 开发结构

对于web应用来所,mysql 5.6 的内置 MC API 功能很好用,PgSQL差一些。

PG的“无锁定”特性非常突出,甚至包括 vacuum 这样的整理数据空间的 *** 作,这个和 PGSQL的 MVCC 实现有关系。

好文要顶 关注我 收藏该文

茄子777

粉丝 - 0 关注 - 0

+加关注

00

« 上一篇: 多线程中的wait与join

» 下一篇: 负载均衡相关

posted @ 2022-11-02 16:20 茄子777 阅读(55) 评论(0) 编辑 收藏 举报

刷新评论刷新页面返回顶部

登录后才能查看或发表评论,立即 登录 或者 逛逛 博客园首页

【推荐】阿里云新人特惠,爆款云服务器2核4G低至0.46元/天

【推荐】双十一同价!腾讯云云服务器抢先购,低至4.2元/月

编辑推荐:

· 一个有趣的 nginx HTTP 400 响应问题分析

· 谁说.NET没有GC调优?只改一行代码就让程序不再占用内存

· 为什么标准库的模板变量都是 inline 的

· .net 如何优雅的使用 EFCore

· 在 C# 中使用 Halcon 开发视觉检测程序

阅读排行:

· Entity Framework Core 7中高效地进行批量数据插入

· 除了 filter 还有什么置灰网站的方式?

· 快速绘制流程图「GitHub 热点速览 v.22.47」

· 使用.NET7和C#11打造最快的序列化程序-以MemoryPack为例

· 私藏!资深数据专家SQL效率优化技巧 ⛵

Python库之图形用户界面

Python库之游戏开发

Python库之虚拟现实

Python库之图形艺术

二、Python库之图形用户界面

2.1 PyQt5

提供了创建Qt5程序的Python API接口

Qt是非常成熟的跨平台桌面应用开发系统,完备GUI

推荐的Python GUI开发第三方库

2.2 wxPython

提供了专用于Python的跨平台GUI开发框架

理解数据类型与索引的关系, *** 作索引即 *** 作数据

Python最主要的数据分析功能库,基于Numpy开发

import wx

app = wx.App(False)

frame = wx.Frame(None, wx.ID_ANY, "Hello World") frame.Show(True)

app.MainLoop()

2.3 PyGObject

提供了整合GTK+、WebKitGTK+等库的功能

GTK+:跨平台的一种用户图形界面GUI框架

实例:Anaconda采用该库构建GUI

import gi

gi.require_version("Gtk", "3.0")

from gi.repository import Gtk

window = Gtk.Window(title="Hello World")

window.show()

window.connect("destroy", Gtk.main_quit)

Gtk.main()

三、Python库之游戏开发

3.1 PyGame

提供了基于SDL的简单游戏开发功能及实现引擎

理解游戏对外部输入的响应机制及角色构建和交互机制

Python游戏入门最主要的第三方库

3.2 Panda3D

Panda3D: 开源、跨平台的3D渲染和游戏开发库,http://www.panda3d.org

一个3D游戏引擎,提供Python和C++两种接口

支持很多先进特性:法线贴图、光泽贴图、卡通渲染等

由迪士尼和卡尼基梅隆大学共同开发

3.3 cocos2d

ocos2d: 构建2D游戏和图形界面交互式应用的框架,http://python.cocos2d.org/

提供了基于OpenGL的游戏开发图形渲染功能

支持GPU加速,采用树形结构分层管理游戏对象类型

适用于2D专业级游戏开发

四、Python库之虚拟现实

4.1 VR Zero

提供大量与VR开发相关的功能

针对树莓派的VR开发库,支持设备小型化,配置简单化

非常适合初学者实践VR开发及应用

4.2 pyovr

针对Oculus VR设备的Python开发库

基于成熟的VR设备,提供全套文档,工业级应用设备

Python+虚拟现实领域探索的一种思路

4.3 Vizard

专业的企业级虚拟现实开发引擎

提供详细的官方文档

支持多种主流的VR硬件设备,具有一定通用性

五、Python库之图形艺术

5.1 Quads

对图片进行四分迭代,形成像素风

可以生成动图或静图图像

简单易用,具有很高展示度

5.2 ascii_art

将普通图片转为ASCII艺术风格

输出可以是纯文本或彩色文本

可采用图片格式输出

5.3 turtle

六、单元小结

6.1 从人机交互到艺术设计

PyQt5、wxPython、PyGObject

PyGame、Panda3D、cocos2d

VR Zero、pyovr、Vizard

Quads、ascii_art、turtle

相关资源:covid19:通过使用Python和Plotly构建的交互式图表探索加拿大的CO...

文章知识点与官方知识档案匹配

Python入门技能树首页概览

215912 人正在系统学习中

点击阅读全文

打开CSDN APP,看更多技术内容

python人机交互设计_063 Python必备库-从人机交互到艺术设计

Vizard: 基于Python的通用VR开发引擎,http://www.worldviz.com/vizard-virtual-reality-software 专业的企业级虚拟现实开发引擎 提供详细的官方文档 支持多种主流的VR硬件设备,具有一定通用性 五、Python库之图形艺术 5.1 Quads Quads: 迭...

继续访问

制作交互式数据可视化图表,只需要一个Python库就能实现!_翎子生。的...

Python第三方库中我们最常用的可视化库是 pandas,matplotlib,pyecharts, 当然还有 Tableau,另外最近在学习过程中发现另一款可视化神器-Plotly,它是一款用来做数据分析和可视化的在线平台,功能非常强大, 可以在线绘制很多图形比如条形图、散点...

继续访问

人机界面

Keras实施3D-VAE 配套 python 3.6 tensorflow-gpu 1.13.1 matplotlib 3.3.2 scikit-image 0.17.2 数据集 出于空间考虑,我们使用数据集,在此存储库中,我们仅在椅子类(03001627)的.binvox文件中提供体积数据,用于训练和测试VAE,该文件位于./dataset下。 如果您想使用许多其他不同类型的对象进行训练,则可以在上面的网站上找到完整的数据集,它需要一个帐户来下载它们。 此外,斯坦福大学还在以下提供相同的数据集: : ,方便下载。 体积数据在ShapeNetVox32.tgz下,图像数据在ShapeNetRendering.tgz下。 体积数据 椅子类中有6778个元素,完整的对象位于/dataset/03001627 。 我们还将其分为训练集和测试集, /dataset/03001627_t

python人机交互界面设计_Python-Tkinter图形化界面设计(详细教程 )

声明:本篇文章为转载自https://www.jianshu.com/p/91844c5bca78,在原作者的基础上添加目录导航,旨在帮助大家以更高效率进行学习和开发。Python-Tkinter 图形化界面设计(详细教程)本文目录一.图形化界面设计的基本理解当前流行的计算机桌面应用程序大多数为图形化用户界面(Graphic User Interface,GUI),即通过鼠标对菜单、按钮等图形化元...

继续访问

python编写交互界面设计_使用python制作ArcGIS插件(4)界面交互

这是在插件执行交互性 *** 作的时候所需要用到的。由于原始的python是没有界面的,所以,这些元素就全靠pythonaddins封装了。 其他的界面类,如按钮类、组合框等,这些都是固定的设计。还有一部分是工具类型,如 *** 作时的鼠标指针,各种的鼠标和...

继续访问

9.4 Python 从人机交互到艺术设计(图形用户界面/游戏开发/虚拟现实/图形...

本文内容为北京理工大学Python慕课课程的课程讲义, 将其整理为OneNote笔记同时添加了本人上课时的课堂笔记, 且主页中的思维导图就是根据课件内容整理而来, 为了方便大家和自己查看,特将此上传到CSDN博文中, 源文件已经上传到我的资源中,...

继续访问

python人机交互界面

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录1.加入背景图片显示界面代码2.设置背景颜色代码 提示:以下是本篇文章正文内容,下面案例可供参考 1.加入背景图片显示界面代码 代码如下(示例): import tkinter as tk root = tk.Tk() root.title('0-1背包实例数据集算法平台') root.geometry('600x340') # 增加背景图片 photo = tk.PhotoImage(file="D:\study\python.

继续访问

Pygame介绍以及下载

一、介绍 Pygame是一个利用SDL库实现的模块。SDL全称Simple DirectMedia Layer,是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要相同或者相似的代码就能开发出多个平台,比如Linux、Windows、Mac OSX等的应用程序。 二、下载 Pygame官网:https://www.pygame.or...

继续访问

Dragonboard 410c Python 交互设计——PyQt环境搭建_ANDYMFC_No1的博客...

Python是一个非常容易上手和使用的语言,非常适合开发者快速的搭建和实现自己ideal原型,在开发中,可以通过Python快速的搭建自己的想法,并且后续很容易使用其他更高性能的语言进行局部或者全局的优化。UI交互设计是开发中常见的一个问题,今天...

继续访问

python如何实现界面交互设计_python图形化界面设计(wxpython)三全面介绍...

窗口和对话框的交互 高级控件 表格控件 高级列表控件 树形控件 树表控件 定时器控件 WxPython库中的高级功能 主要使用wxPython(最成熟的跨平台python GUI工具包) 前戏:基础了解 importwxclass MyFrame(wx.Frame): #创建自定义Frame def...

继续访问

python人机交互界面设计_python_GUI页面开发

GUI:人机交互图形化界面,图形页面窗口,Windows系统就是一个庞大的GUI界面,比命令行更加让人得以接受,使用更加简便在python中的GUI界面是由tkinter提供的,使用前需导入变量 = tk.Tk():创建一个窗口,将他实例化变量 = geometry('长宽'):设置窗口的长宽页面开发的最小内容:1.导入tkinter模块2.创建主窗口对象3.将主窗口对象加入消息循环importt...

继续访问

python安装pygame失败_python下PyGame的下载与安装过程及遇到问题

1.去官网下载PyGame注意:要下载对应版本的包其中,如果python为以下版本:(cp36就是python3.6的意思)2. .exe文件直接安装.whl文件启动doc命令安装:在文件所在位置打开doc界面:(win10直接在当前文件夹空白处按住shift,右键打开powershell窗口)输入以下指令安装:pip install pygame-1.9.3-cp36-cp36m-win...

继续访问

基于Python的学生生活信息交互平台的设计和实现_天行IT科技馆的博客-CS...

《基于Python的学生生活信息交互平台的设计和实现》该项目采用技术Python的django框架、mysql数据库 ,项目含有源码、论文、PPT、配套开发软件、软件安装教程、项目发布教程、核心代码介绍视频等 软件开发环境及开发工具: ...

继续访问

...python做交互式界面?_程序员小猴紫的博客_python交互...

界面设计:PyQt模块,这个界面个人感觉是python中界面设计最好用的模块,既可以使用窗口设计界面,又能使用CSS样式。 2.界面设计 2.1打开PyQt designer界面 三步成界面,是不是很简单,哈哈,你没看错,设计一个界面就是这么的简单,当然我没有...

继续访问

最新发布 python互联网程序设计GUI程序设计和网络程序设计(人机互动聊天软件)

(2)必备功能:服务器客户端之间能简单发送和接收文件。至少应有序列化和反序列化功 能。收发双方,应打印显示发送或接收的原始对象的信息(非字节串)。(1)必备功能:要求服务端代码具有一定的智能,能够根据不完整的问题识别客户端真正 要问的问题。如客户输入how old, 服务器能回答年龄。(1)测试TCP连接是否成功。(2)试接收信息是否完整。(4)测试其他无关键词汇。(5)测试文件发送与接收。(3)测试智能回复聊天。(1)发送信息的函数。

继续访问

python人机交互界面设计_063 Python必备库-从人机交互到艺术设计

一、概述Python库之图形用户界面Python库之游戏开发Python库之虚拟现实Python库之图形艺术二、Python库之图形用户界面2.1 PyQt5提供了创建Qt5程序的Python API接口Qt是非常成熟的跨平台桌面应用开发系统,完备GUI推荐的Python GUI开发第三方库2.2 wxPython提供了专用于Python的跨平台GUI开发框架理解数据类型与索引的关系, *** 作索引即 *** ...

继续访问

python编写人机交互界面_中科院科研项目:人机交互—自然人机语音交互研究

本文来自微信公众号——青人留学。中科院科研项目:人机交互—自然人机语音交互研究​mp.weixin.qq.com项目简介自上世纪90年代以来,随着手写识别、语音识别、网络通信技术的发展,人机交互已发生了巨变,一个完全不懂编程以及网络通信原理的普通小孩,可能会比计算机科学家和网络工程师更好地使用计算机。方式的变革使得人机交互变得简单,而这个变革,就发生在短短不到30年内。可预见的是,未来计算机会更加...

继续访问

Pygame详解:前言

Pygame官网:https://www.pygame.org Pygame的官网是有详细的文档的:https://www.pygame.org/docs/ 下图是Pygame 的所有类和模块,都有对应的文档, 我做的就是 Pygame中文文档,喜欢看英文原版的还是可以去看官网,不喜勿喷。 第一篇:Pygame详解(一):Color类 ...

继续访问

cocos2d for python_Python版的cocos2d库:一个2D游戏开发GUI框架的入门详解

1 说明:=====1.1 cocos2d是一个基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。1.2 不逊色于pygame,但是其实Python版的cocos2d库是基于pygame和pyglet的,也就是集大成者。1.3 中文教程少的可怜,所以写一个入门教程,把坑填了,亲测过,注释里有讲解。1.4A 2D framework for games and multimed...

继续访问

python 游戏引擎 cocos2d_【Cocos2dx游戏开发】Cocos2d-x简介

一、简介最近在做一个Android下的卡牌游戏——《九州幻想》开发项目,而我们使用的引擎是Cocos2dx,所以想要写写笔记来记录一下项目中的收获。当然首先稍微介绍一下Cocos2d-x引擎:cocos2d-x是一个免费、开源、跨平台的2D游戏引擎。我们知道Cocos2d是一个基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。最初cocos2d仅是一个用Python语言写的游...

继续访问

python编写人机交互界面_【021】重磅!人机交互设计项目(全下载)|1蓝调百香果跨年热文大赛作品...

项目4:人机交互设计项目───自动售货程序设计梁玉华山东昌乐二中随着科技的不断发展,计算机的出现引发关于“人机交互”的研究已经有半个世纪的历史。从最早的二进制大型计算机到现在的人工智能,几乎全世界的高科技精英们都在为人机交互的发展和前进不懈努力,未来人们生活的各个领域,人机交互将无处不在。自动售货机是人机交互技术在生活中的一项典型应用,本项目将以“自动售货程序设计”为主线,经历生活...

继续访问

Python 计算生态概览

文章目录Python 计算生态概览Python 计算程序设计思维Python 计算生态概览从数据处理到人工智能Python库之数据分析Numpy: 表达N维数组的最基础库Pandas: Python数据分析高层次应用库SciPy: 数学、科学和工程计算功能库Python库之数据可视化Matplotlib: 高质量的二维数据可视化功能库Seaborn: 统计类数据可视化功能库Mayavi:三维科学数据可视化功能库Python库之文本处理PyPDF2: 用来处理pdf文件的工具集NLTK: 自然语言文本处理第三

继续访问

利用Python+Cocos2d制作《猫吃老鼠》小游戏

因此,如果在代码的其他位置更新过self.position(或者self.x或者self.y),千万不要忘记调用update_cshape()更新cshape的位置。除了以上这几个方法以外,CollisionManagerGrid类还定义了一些其他有用的方法,如they_collide(),any_near(),objs_near(),objs_near_wdistance(),ranked_objs_near(),iter_all_collisions()等,鉴于篇幅有限,不再一一介绍。

继续访问

Python实战案例:Python使用cocos2d实现捕鱼达人

Python实战案例:Python使用cocos2d实现捕鱼达人 游戏,它是一种基于物质需求满足之上的,在一些特定时间、空间范围内遵循某种特定规则的,追求精神世界需求满足的社会行为方式。合理适度的游戏允许人类在模拟环境下挑战和克服障碍,可以帮助人类开发智力、锻炼思维和反应能力。一般的小型游戏都是一些随机变化的事物,根据鼠标或键盘的 *** 作来完成对变化事物的点击 *** 作或者控制 *** 作,最终实现娱乐的目的。 如下图为地铁跑酷的界面。 上图中人就是一个控制的元素,通过控制人的左右和跳跃,最终对金币进行累加的游戏。

继续访问

python 人机交互 输入输出以及格式处理

输入函数:input() 输出函数:print() 例子: x = input('请输入:') input 函数接收的是字符串。 将字符串转化为int 型方式 例子: x = input('请输入x的值:') y = input('请输入y的值: ') z = x + y print(z) 运行程序: 请输入x的值:1 请输入y的值:1 11 #打印变量z结果 x = input('请输入x的值:') y = input('请输入y的值: ') z = int(x) + int

继续访问

热门推荐 python编程(关于cocos2d)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 做游戏的同学大约对cocos2dx不会陌生,基本上做2d游戏都会用到这一款引擎。但是下载cocos2dx非常麻烦,不光文件很大,还要配置visual studio,所以我在想要是linux下面也有一款类似的软件就好了。所以,趁周末找了找,没想到还真有,这就是python版本的coco

继续访问

Pygame精灵和碰撞检测

在开始学习相关知识点之前,我们有必要先学习精灵和碰撞检测的含义。 精灵(英文译为 Sprite),其实在一个游戏程序中,精灵本质指的是一张张小尺寸的图片,比如游戏中的各种道具、人物、场景装饰等,它们都可以看做成一张张小的“精灵”图。除此之外,人物的移动也可以看做是一系列小精灵图构成的序列(按帧组成的序列) 如果将逐帧分解后的动作,按照一定的频率播放,那么就形成了动画精灵,您将会看到雄鹰展翅高飞、人在策马奔腾、运动员奋力跳远。 精灵有个特点就是允许精灵之间进行交互,也称之为碰撞,而碰撞检测,指的就是检测两个精

继续访问

python人机交互界面设计_python做一个gui

本人是做接口测试的,而很多接口现在对于安全方面有了很大的重视,所以往往在接口层上做了一些加密,比如MD5、AES、SHA之类的加密,而每次加密,都是自己利用python编写脚本而生成sign值,这往往对于自己在工具效率上无法提高,所以就产生了自己编写一个简单的加密+请求接口的小工具的想法。因为本人现在主要是以python为主,所以在选择的时候,就从这方面入手。许多人在学习如何创建一个 GUI 应用...

一、算法工程师简介(通常是月薪15k以上,年薪18万以上,只是一个概数,具体薪资可以到招聘网站如拉钩,猎聘网上看看)算法工程师目前是一个高端也是相对紧缺的职位;算法工程师包括音/视频算法工程师(通常统称为语音/视频/图形开发工程师)、图像处理算法工程师、计算机视觉算法工程师、通信基带算法工程师、信号算法工程师、射频/通信算法工程师、自然语言算法工程师、数据挖掘算法工程师、搜索算法工程师、控制算法工程师(云台算法工程师,飞控算法工程师,机器人控制算法)、导航算法工程师(@之介感谢补充)、其他【其他一切需要复杂算法的行业】专业要求:计算机、电子、通信、数学等相关专业;学历要求:本科及其以上的学历,大多数是硕士学历及其以上;语言要求:英语要求是熟练,基本上能阅读国外专业书刊,做这一行经常要读论文;必须掌握计算机相关知识,熟练使用仿真工具MATLAB等,必须会一门编程语言。算法工程师的技能树(不同方向差异较大,此处仅供参考)1 机器学习2 大数据处理:熟悉至少一个分布式计算框架Hadoop/Spark/Storm/ map-reduce/MPI3 数据挖掘4 扎实的数学功底5 至少熟悉C/C++或者Java,熟悉至少一门编程语言例如java/python/R加分项:具有较为丰富的项目实践经验(不是水论文的哪种)二、算法工程师大致分类与技术要求(一)图像算法/计算机视觉工程师类包括图像算法工程师,图像处理工程师,音/视频处理算法工程师,计算机视觉工程师要求l 专业:计算机、数学、统计学相关专业;l 技术领域:机器学习,模式识别l 技术要求:(1) 精通DirectX HLSL和OpenGL GLSL等shader语言,熟悉常见图像处理算法GPU实现及优化;(2) 语言:精通C/C++;(3) 工具:Matlab数学软件,CUDA运算平台,VTK图像图形开源软件【医学领域:ITK,医学图像处理软件包】(4) 熟悉OpenCV/OpenGL/Caffe等常用开源库;(5) 有人脸识别,行人检测,视频分析,三维建模,动态跟踪,车识别,目标检测跟踪识别经历的人优先考虑;(6) 熟悉基于GPU的算法设计与优化和并行优化经验者优先;(7) 【音/视频领域】熟悉H.264等视频编解码标准和FFMPEG,熟悉rtmp等流媒体传输协议,熟悉视频和音频解码算法,研究各种多媒体文件格式,GPU加速;应用领域:(1) 互联网:如美颜app(2) 医学领域:如临床医学图像(3) 汽车领域(4) 人工智能相关术语:(1) OCR:OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程(2) Matlab:商业数学软件;(3) CUDA: (Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台(由ISA和GPU构成)。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题(4) OpenCL: OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU或其他类型的处理器组成。(5) OpenCV:开源计算机视觉库;OpenGL:开源图形库;Caffe:是一个清晰,可读性高,快速的深度学习框架。(6) CNN:(深度学习)卷积神经网络(Convolutional Neural Network)CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。(7) 开源库:指的是计算机行业中对所有人开发的代码库,所有人均可以使用并改进代码算法。(二)机器学习工程师包括机器学习工程师要求l 专业:计算机、数学、统计学相关专业;l 技术领域:人工智能,机器学习l 技术要求:(1) 熟悉Hadoop/Hive以及Map-Reduce计算模式,熟悉Spark、Shark等尤佳;(2) 大数据挖掘;(3) 高性能、高并发的机器学习、数据挖掘方法及架构的研发;应用领域:(1)人工智能,比如各类仿真、拟人应用,如机器人(2)医疗用于各类拟合预测(3)金融高频交易(4)互联网数据挖掘、关联推荐(5)无人汽车,无人机相关术语:(1) Map-Reduce:MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。(三)自然语言处理工程师包括自然语言处理工程师要求l 专业:计算机相关专业;l 技术领域:文本数据库l 技术要求:(1) 熟悉中文分词标注、文本分类、语言模型、实体识别、知识图谱抽取和推理、问答系统设计、深度问答等NLP 相关算法;(2) 应用NLP、机器学习等技术解决海量UGC的文本相关性;(3) 分词、词性分析、实体识别、新词发现、语义关联等NLP基础性研究与开发;(4) 人工智能,分布式处理Hadoop;(5) 数据结构和算法;应用领域:口语输入、书面语输入、语言分析和理解、语言生成、口语输出技术、话语分析与对话、文献自动处理、多语问题的计算机处理、多模态的计算机处理、信息传输与信息存储 、自然语言处理中的数学方法、语言资源、自然语言处理系统的评测。相关术语:(2) NLP:人工智能的自然语言处理,NLP (Natural Language Processing) 是人工智能(AI)的一个子领域。NLP涉及领域很多,最令我感兴趣的是“中文自动分词”(Chinese word segmentation):结婚的和尚未结婚的【计算机中却有可能理解为结婚的“和尚“】(四)射频/通信/信号算法工程师类包括3G/4G无线通信算法工程师, 通信基带算法工程师,DSP开发工程师(数字信号处理),射频通信工程师,信号算法工程师要求l 专业:计算机、通信相关专业;l 技术领域:2G、3G、4G,BlueTooth(蓝牙),WLAN,无线移动通信, 网络通信基带信号处理l 技术要求:(1) 了解2G,3G,4G,BlueTooth,WLAN等无线通信相关知识,熟悉现有的通信系统和标准协议,熟悉常用的无线测试设备;(2) 信号处理技术,通信算法;(3) 熟悉同步、均衡、信道译码等算法的基本原理;(4) 【射频部分】熟悉射频前端芯片,扎实的射频微波理论和测试经验,熟练使用射频电路仿真工具(如ADS或MW或Ansoft);熟练使用cadence、altium designer PCB电路设计软件;(5) 有扎实的数学基础,如复变函数、随机过程、数值计算、矩阵论、离散数学应用领域:通信VR【用于快速传输视频图像,例如乐客灵境VR公司招募的通信工程师(数据编码、流数据)】物联网,车联网导航,军事,卫星,雷达相关术语:(1) 基带信号:指的是没有经过调制(进行频谱搬移和变换)的原始电信号。(2) 基带通信(又称基带传输):指传输基带信号。进行基带传输的系统称为基带传输系统。传输介质的整个信道被一个基带信号占用.基带传输不需要调制解调器,设备化费小,具有速率高和误码率低等优点,.适合短距离的数据传输,传输距离在100米内,在音频市话、计算机网络通信中被广泛采用。如从计算机到监视器、打印机等外设的信号就是基带传输的。大多数的局域网使用基带传输,如以太网、令牌环网。(3) 射频:射频(RF)是Radio Frequency的缩写,表示可以辐射到空间的电磁频率(电磁波),频率范围从300KHz~300GHz之间(因为其较高的频率使其具有远距离传输能力)。射频简称RF射频就是射频电流,它是一种高频交流变化电磁波的简称。每秒变化小于1000次的交流电称为低频电流,大于10000次的称为高频电流,而射频就是这样一种高频电流。高频(大于10K);射频(300K-300G)是高频的较高频段;微波频段(300M-300G)又是射频的较高频段。【有线电视就是用射频传输方式】(4) DSP:数字信号处理,也指数字信号处理芯片(五)数据挖掘算法工程师类包括推荐算法工程师,数据挖掘算法工程师要求l 专业:计算机、通信、应用数学、金融数学、模式识别、人工智能;l 技术领域:机器学习,数据挖掘l 技术要求:(1) 熟悉常用机器学习和数据挖掘算法,包括但不限于决策树、Kmeans、SVM、线性回归、逻辑回归以及神经网络等算法;(2) 熟练使用SQL、Matlab、Python等工具优先;(3) 对Hadoop、Spark、Storm等大规模数据存储与运算平台有实践经验【均为分布式计算框架】(4) 数学基础要好,如高数,统计学,数据结构l 加分项:数据挖掘建模大赛;应用领域(1) 个性化推荐(2) 广告投放(3) 大数据分析相关术语Map-Reduce:MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。(六)搜索算法工程师要求l 技术领域:自然语言l 技术要求:(1) 数据结构,海量数据处理、高性能计算、大规模分布式系统开发(2) hadoop、lucene(3) 精通Lucene/Solr/Elastic Search等技术,并有二次开发经验(4) 精通Lucene/Solr/Elastic Search等技术,并有二次开发经验;(5) 精通倒排索引、全文检索、分词、排序等相关技术;(6) 熟悉Java,熟悉Spring、MyBatis、Netty等主流框架;(7) 优秀的数据库设计和优化能力,精通MySQL数据库应用 ;(8) 了解推荐引擎和数据挖掘和机器学习的理论知识,有大型搜索应用的开发经验者优先。(七)控制算法工程师类包括了云台控制算法,飞控控制算法,机器人控制算法要求l 专业:计算机,电子信息工程,航天航空,自动化l 技术要求:(1) 精通自动控制原理(如PID)、现代控制理论,精通组合导航原理,姿态融合算法,电机驱动,电机驱动(2) 卡尔曼滤波,熟悉状态空间分析法对控制系统进行数学模型建模、分析调试;l 加分项:有电子设计大赛,机器人比赛,robocon等比赛经验,有硬件设计的基础;应用领域(1)医疗/工业机械设备(2)工业机器人(3)机器人(4)无人机飞控、云台控制等(八)导航算法工程师要求l 专业:计算机,电子信息工程,航天航空,自动化l 技术要求(以公司职位JD为例)公司一(1)精通惯性导航、激光导航、雷达导航等工作原理;(2)精通组合导航算法设计、精通卡尔曼滤波算法、精通路径规划算法;(3)具备导航方案设计和实现的工程经验;(4)熟悉C/C++语言、熟悉至少一种嵌入式系统开发、熟悉Matlab工具;公司二(1)熟悉基于视觉信息的SLAM、定位、导航算法,有1年以上相关的科研或项目经历;(2)熟悉惯性导航算法,熟悉IMU与视觉信息的融合应用领域无人机、机器人等。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8607146.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存