配置phoenix连接hbase_Phoenix视图映射

点击关注上方“知了小巷”,

设为“置顶或星标”,第一时间送达干货。

Phoenix定位为OLTP和操作型分析(operational analytics),大多用于在线业务,稳定性要求第一位。Phoenix的功能很强大,也很灵活,Phoenix SQL基于SQL-92标准,但是还是有很多方言,使用时需要特别注意。

DataX是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

这里主要用到oraclereaderhbase11xwriter

基础软件版本:

Apache Hadoop:hadoop-2.8.5

Apache HBase:hbase-1.4.10

Apache Phoenix:phoenix-4.14.3-HBase-1.4-bin

Phoenix版本支持:

Phoenix Current release 4.15.0 can run on Apache HBase 1.3, 1.4 and 1.5. CDH HBase 5.11, 5.12, 5.13 and 5.14 is supported by 4.14.0. Apache HBase 2.0 is supported by 5.0.0.

hbase客户端

hbase shell

phoenix客户端

phoenix-4.14.3-HBase-1.4-bin/bin/sqlline.py

# 进入hbase shell客户端

$ hbase shellSLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/home/admin/hbase-1.4.10/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/home/admin/hadoop-2.8.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]HBase ShellUse "help" to get list of supported commands.Use "exit" to quit this interactive shell.Version 1.4.10, r76ab087819fe82ccf6f531096e18ad1bed079651, Wed Jun  5 16:48:11 PDT 2019

# 创建命名空间ZLXX

hbase(main):006:0> create_namespace 'ZLXX'0 row(s) in 1.1150 seconds

# 创建hbase表,使用命名空间

hbase(main):001:0> create 'ZLXX:WT_TRADE_REFUND', 'INFO'0 row(s) in 1.7510 seconds => Hbase::Table - ZLXX:WT_TRADE_REFUND

查看表描述信息(desc)

hbase(main):009:0> desc 'ZLXX:WT_TRADE_REFUND'Table ZLXX:WT_TRADE_REFUND is ENABLED                                                                                                                                                      ZLXX:WT_TRADE_REFUND                                                                                                                                                                       COLUMN FAMILIES DESCRIPTION                                                                                                                                                                {NAME => 'INFO', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                                                                                                       1 row(s) in 0.0730 seconds

# 使用DataX往hbase表里面添加测试数据(存量批量数据采集)

数据源来自Oracle,数据目标系统是HBase原生创建的表。

使用oraclereader和hbase11xwriter。

具体配置zlxx_test.json

$ vi zlxx_test.json{  "job": {    "content": [      {        "reader": {          "name": "oraclereader",          "parameter": {            "column": [],            "connection": [              {                "fetchSize": "1024",                "jdbcUrl": [                  "$DW_ORCL_ZLXX_JDBCURL"                ],                "querySql": [                  "select id, trade_id, amount, status, TO_CHAR(modify_time,'YYYYMMDDhh24miss') AS modify_time from zlxx.trade_refund"                ]              }            ],            "password": "$DW_ORCL_ZLXX_PASSWORD",            "username": "$DW_ORCL_ZLXX_USERNAME"          }        },        "writer": {          "name": "hbase11xwriter",          "parameter": {            "hbaseConfig": {              "hbase.zookeeper.quorum": "192.168.10.211:12181,192.168.10.212:12181,192.168.10.213:12181"            },            "table": "ZLXX:WT_TRADE_REFUND",            "mode": "normal",            "nullMode": "empty",            "rowkeyColumn": [              {                "index":0,                "type":"string"              }            ],            "column": [              {                "index":1,                "name": "INFO:TRADE_ID",                "type": "string"              },              {                "index":2,                "name": "INFO:AMOUNT",                "type": "string"              },              {                "index":3,                "name": "INFO:STATUS",                "type": "string"              },              {                "index":4,                "name": "INFO:MODIFY_TIME",                "type": "string"              }            ],            "encoding": "utf-8"          }        }      }    ],    "setting": {      "speed": {        "channel": "10"      }    }  }}

执行DataX的shell脚本

数据库连接和用户名密码等配置在服务器的环境变量中

$ vi zlxx_test.shsource ~/.bash_profilepython datax/bin/datax.py -j "-Xms1g -Xmx1g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=datax/log" -p"-DDW_ORCL_ZLXX_JDBCURL=$DW_ORCL_ZLXX_JDBCURL -DDW_ORCL_ZLXX_PASSWORD=$DW_ORCL_ZLXX_PASSWORD -DDW_ORCL_ZLXX_USERNAME=$DW_ORCL_ZLXX_USERNAME"

执行shell脚本

$ sh zlxx_test.sh......任务总计耗时                    :                 10s任务平均流量                    :            1.77KB/s记录写入速度                    :             52rec/s读出记录总数                    :                 528读写失败总数                    :                   0

查看一下数据

hbase(main):012:0* scan 'ZLXX:WT_TRADE_REFUND', {LIMIT=>1}ROW                                             COLUMN+CELL                                                                                                                                 1005528                                        column=INFO:AMOUNT, timestamp=1594783514554, value=100                                                                                      1005528                                        column=INFO:MODIFY_TIME, timestamp=1594783514554, value=20200228185803                                                                      1005528                                        column=INFO:STATUS, timestamp=1594783514554, value=01                                                                                       1005528                                        column=INFO:TRADE_ID, timestamp=1594783514554, value=T12059592                                                                             1 row(s) in 0.1220 seconds

Tips:Phoenix不管你输入的是大写还是小写都默认把它转成大写的,如果要小写的话必须加上引号;所以上面从hbase shell创建的表和列均使用了大写,便于Phoenix自然映射。

# Phoenix使用as select创建视图映射到HBase表

先创建Phoenix schema:

0: jdbc:phoenix:> create schema ZLXX;No rows affected (0.012 seconds)

创建视图,由于Phoenix大小写最终都是大写,所以这里可以使用小写

create view ZLXX.WT_TRADE_REFUND (    id varchar primary key,    info.trade_id varchar,    info.amount  varchar,    info.status varchar,    info.modify_time varchar) as select * from zlxx.wt_trade_refund;

视图创建效果:

0: jdbc:phoenix:> create view ZLXX.WT_TRADE_REFUND (. . . . . . . . >     id varchar primary key,. . . . . . . . >     info.trade_id varchar,. . . . . . . . >     info.amount  varchar,. . . . . . . . >     info.status varchar,. . . . . . . . >     info.modify_time varchar. . . . . . . . > ) as select * from zlxx.wt_trade_refund;No rows affected (5.956 seconds)

# 走一个查询试试看(完美)

0: jdbc:phoenix:> select * from zlxx.wt_trade_refund limit 5;+----------+------------+---------+---------+-----------------+|    ID    |  TRADE_ID  | AMOUNT  | STATUS  |   MODIFY_TIME   |+----------+------------+---------+---------+-----------------+| 1005528  | T12059592  | 100     | 01      | 20200228185803  || 1005529  | T12059591  | 10      | 03      | 20200228185846  || 1005530  | T12059606  | 10      | 01      | 20200228195442  || 1005531  | T12059605  | 10      | 01      | 20200228195442  || 1005532  | noTradeId  | 100     | 03      | 20200229224015  |+----------+------------+---------+---------+-----------------+5 rows selected (0.062 seconds)

# Phoenix使用column_encoded_bytes=0

创建视图映射到HBase表(测试下多视图)

由于需要名字相同,先把上面的view ZLXX.WT_TRADE_REFUND删除,稍后再使用as select创建不同名称的视图。

删除视图:

drop view ZLXX.WT_TRADE_REFUND;

创建视图:

create view ZLXX.WT_TRADE_REFUND (    id varchar primary key,    info.trade_id varchar,    info.amount  varchar,    info.status varchar,    info.modify_time varchar) column_encoded_bytes=0;

也是正常的,能够看到有数据查询出来

0: jdbc:phoenix:> drop view ZLXX.WT_TRADE_REFUND;No rows affected (0.046 seconds)0: jdbc:phoenix:> create view ZLXX.WT_TRADE_REFUND (. . . . . . . . >     id varchar primary key,. . . . . . . . >     info.trade_id varchar,. . . . . . . . >     info.amount  varchar,. . . . . . . . >     info.status varchar,. . . . . . . . >     info.modify_time varchar. . . . . . . . > ) column_encoded_bytes=0;No rows affected (0.041 seconds)

limit查询数据:

0: jdbc:phoenix:> select * from zlxx.wt_trade_refund limit 5;+----------+------------+---------+---------+-----------------+|    ID    |  TRADE_ID  | AMOUNT  | STATUS  |   MODIFY_TIME   |+----------+------------+---------+---------+-----------------+| 1005528  | T12059592  | 100     | 01      | 20200228185803  || 1005529  | T12059591  | 10      | 03      | 20200228185846  || 1005530  | T12059606  | 10      | 01      | 20200228195442  || 1005531  | T12059605  | 10      | 01      | 20200228195442  || 1005532  | noTradeId  | 100     | 03      | 20200229224015  |+----------+------------+---------+---------+-----------------+5 rows selected (0.056 seconds)

下面使用as select创建名称不同的视图,假设不需要status字段

create view ZLXX.WT_TRADE_REFUND2 (    id varchar primary key,    info.trade_id varchar,    info.amount  varchar,    info.modify_time varchar) as select INFO.TRADE_ID, INFO.AMOUNT, INFO.MODIFY_TIME from zlxx.wt_trade_refund;

会报错

0: jdbc:phoenix:> create view ZLXX.WT_TRADE_REFUND2 (. . . . . . . . >     id varchar primary key,. . . . . . . . >     info.trade_id varchar,. . . . . . . . >     info.amount  varchar,. . . . . . . . >     info.modify_time varchar. . . . . . . . > ) as select INFO.TRADE_ID, INFO.AMOUNT, INFO.MODIFY_TIME from zlxx.wt_trade_refund;Error: ERROR 604 (42P00): Syntax error. Mismatched input. Expecting "ASTERISK", got "INFO" at line 6, column 13. (state=42P00,code=604)org.apache.phoenix.exception.PhoenixParserException: ERROR 604 (42P00): Syntax error. Mismatched input. Expecting "ASTERISK", got "INFO" at line 6, column 13.

同一张表创建名称不同的视图: 

create view ZLXX.WT_TRADE_REFUND2 (    id varchar primary key,    info.trade_id varchar,    info.amount  varchar,    info.status varchar,    info.modify_time varchar) as select * from zlxx.wt_trade_refund; 

则是可以的

0: jdbc:phoenix:> select * from zlxx.wt_trade_refund2 limit 5;+----------+------------+---------+---------+-----------------+|    ID    |  TRADE_ID  | AMOUNT  | STATUS  |   MODIFY_TIME   |+----------+------------+---------+---------+-----------------+| 1005528  | T12059592  | 100     | 01      | 20200228185803  || 1005529  | T12059591  | 10      | 03      | 20200228185846  || 1005530  | T12059606  | 10      | 01      | 20200228195442  || 1005531  | T12059605  | 10      | 01      | 20200228195442  || 1005532  | noTradeId  | 100     | 03      | 20200229224015  |+----------+------------+---------+---------+-----------------+5 rows selected (0.093 seconds)

简单查看一下Phoenix视图的描述信息(列信息)

0: jdbc:phoenix:> !describe zlxx.wt_trade_refund+------------+--------------+------------------+--------------+------------+------------+--------------+----------------+-----------------+-----------------+-----------+----------+------+| TABLE_CAT  | TABLE_SCHEM  |    TABLE_NAME    | COLUMN_NAME  | DATA_TYPE  | TYPE_NAME  | COLUMN_SIZE  | BUFFER_LENGTH  | DECIMAL_DIGITS  | NUM_PREC_RADIX  | NULLABLE  | REMARKS  | COLU |+------------+--------------+------------------+--------------+------------+------------+--------------+----------------+-----------------+-----------------+-----------+----------+------+|            | ZLXX         | WT_TRADE_REFUND  | ID           | 12         | VARCHAR    | null         | null           | null            | null            | 0         |          |      ||            | ZLXX         | WT_TRADE_REFUND  | TRADE_ID     | 12         | VARCHAR    | null         | null           | null            | null            | 1         |          |      ||            | ZLXX         | WT_TRADE_REFUND  | AMOUNT       | 12         | VARCHAR    | null         | null           | null            | null            | 1         |          |      ||            | ZLXX         | WT_TRADE_REFUND  | STATUS       | 12         | VARCHAR    | null         | null           | null            | null            | 1         |          |      ||            | ZLXX         | WT_TRADE_REFUND  | MODIFY_TIME  | 12         | VARCHAR    | null         | null           | null            | null            | 1         |          |      |+------------+--------------+------------------+--------------+------------+------------+--------------+----------------+-----------------+-----------------+-----------+----------+------+

简单查看一下Phoenix表元数据信息(TABLE_TYPE为VIEW)

0: jdbc:phoenix:> !tables+------------+--------------+-------------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+-+| TABLE_CAT  | TABLE_SCHEM  |    TABLE_NAME     |  TABLE_TYPE   | REMARKS  | TYPE_NAME  | SELF_REFERENCING_COL_NAME  | REF_GENERATION  | INDEX_STATE  | IMMUTABLE_ROWS  | SALT_BUCKETS  | |+------------+--------------+-------------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+-+|            | SYSTEM       | CATALOG           | SYSTEM TABLE  |          |            |                            |                 |              | false           | null          | ||            | SYSTEM       | FUNCTION          | SYSTEM TABLE  |          |            |                            |                 |              | false           | null          | ||            | SYSTEM       | LOG               | SYSTEM TABLE  |          |            |                            |                 |              | true            | 32            | ||            | SYSTEM       | SEQUENCE          | SYSTEM TABLE  |          |            |                            |                 |              | false           | null          | ||            | SYSTEM       | STATS             | SYSTEM TABLE  |          |            |                            |                 |              | false           | null          | ||            | ZLXX         | WT_TRADE_REFUND   | VIEW          |          |            |                            |                 |              | false           | null          | ||            | ZLXX         | WT_TRADE_REFUND2  | VIEW          |          |            |                            |                 |              | false           | null          | |+------------+--------------+-------------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+-+

# 在HBase里插入点数据看看Phoenix的视图能否实时更新?答案是YES!

put 'ZLXX:WT_TRADE_REFUND', '2009999', 'INFO:TRADE_ID', 'ZXR3099999'put 'ZLXX:WT_TRADE_REFUND', '2009999', 'INFO:AMOUNT', '100'put 'ZLXX:WT_TRADE_REFUND', '2009999', 'INFO:STATUS', '00'put 'ZLXX:WT_TRADE_REFUND', '2009999', 'INFO:MODIFY_TIME', '20200715124015'

hbase shell端put数据

92baa53a2eddb966b1e0f46a945ef861.png

Phoenix端查询数据

da4b9f8b800a09da5e8076db6771a71f.png

总结:

1.hbase shell这边创建表时,命名空间namespace和表名称都要大写,这样方便Phoenix这边小写。

2.在hbase shell这边,命名空间与表名称之间需要注意是双引号,DataX里的全表名称也是如此。

3.Phoenix这边创建相同命名空间名称的schema。

4.Phoenix这边创建view视图映射有两种方式:as select和column_encoded_bytes=0。

附录hbase整合Phoenix的基本配置:

hbase-site.xml<property>  <name>phoenix.schema.isNamespaceMappingEnabledname>  <value>truevalue>property><property>  <name>phoenix.schema.mapSystemTablesToNamespacename>  <value>truevalue>property>

【Phoenix视图映射和DataX数据同步到HBase、END】

往期推荐:

Kafka消息送达语义说明

Kafka基础知识总结

Hadoop YARN:ApplicationMaster向ResourceManager注册AM源码调试

Apache Hadoop YARN:ClientResourceManager源码解析

Apache Hadoop YARN:ClientResourceManager源码DEBUG

Hadoop YARN:ApplicationMaster与ResourceManager交互源码解析

Hive企业级调优

HiveQL查询连续三天有销售记录的店铺

HiveQL实战蚂蚁森林低碳用户排名分析:解法一

HiveQL实战蚂蚁森林低碳用户排名分析:解法二

HiveQL实战蚂蚁森林植物申领统计分析

Hive-函数

Hive-查询

Hive-DML(Data Manipulation Language)数据操作语言

Hive-DDL(Data Definition Language)数据定义

Hive优化(整理版)

Spark Core之Shuffle解析

数据仓库开发规范

31002d2fadd66ad65f19b5c96a50150d.png

ca4d589a6842f7a1b352fe90b7c1ac10.gif

分享-点赞-在看,谢谢~~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349490.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python分析数据差异的方法_用Python的两种方法进行方差分析

在进行数据分析时&#xff0c;我们往往会遇到要对某个变量的影响因素进行分析的情况&#xff0c;而影响一事物的因素往往是很多的。比如在化工生产中&#xff0c;有温度、压力、剂量、反应时间等因素。每一因素的改变都有可能影响产品的数量和质量。我们往往要找出对产品质量有…

5 图片 渐变_AI教程!5分钟教你绘制超酷炫的字体效果

图一所示的图片就是我们今天要学的AI教程啦。为什么想起来要做这个呢&#xff1f;因为前两天有两个粉丝私信我问这种效果的字体怎么做。觉得大家应该对这类字体比较感兴趣的&#xff0c;所以今天就给大家出个教程啦。第一眼看上去是不是感觉很酷炫&#xff1f;其实步骤也不多&a…

6的变换_电源学报 | 2020年第3期:quot;高性能双向直流变换技术及其应用quot;专辑征稿启事...

往期精选&#xff1a;【电源学报•热点论文】贝尔福-蒙贝利亚技术大学(UTBM)高非教授-多物理域质子交换膜燃料电池建模仿真及实验测试专辑主编&#xff1a;张云 研究员(天津大学)吴红飞 教授(南京航空航天大学)专辑刊期&#xff1a; 2020年第3期(2020年5月)专辑介绍双向直流变换…

flash大作业一分钟源文件_「百树云课堂」一写作业就像被雷劈,是什么“病”?...

一写作业就闹心&#xff0c;大部分都是因为在培养习惯的时候基础没打好。比如&#xff1a;对时间不敏感、对效率不敏感、专注力低下等等&#xff01;今天咱就系统说下“习惯培养”的重点。1大部分娃写不完作业&#xff0c;最主要的一点就是对时间不敏感。写一个字&#xff0c;喝…

bzoj5147bzoj2121loj6701 字符串游戏

做不出来杂题,到处找题做 看到$loj$上新出了一道题,觉得很神仙不错, 还记得Censoring吗(一个AC自动机的题) 这个题求最优解,数据范围$150$ 题解 数据范围非常小,首先贪心肯定不行,考虑AC自动机上$dp$? 好吧其实是区间$dp$ 一个直接的想法是维护$f[l][r]0/1$表示是否可以清空$l…

7个相同小球4个不同盒子_【计算启蒙】4个游戏陪娃玩懂“数拆分”,加减法都不用愁!...

前几天我们整理了能锻炼孩子“数-量匹配”知识的家庭生活小游戏&#xff1a;7个家庭数-量匹配小游戏&#xff0c;让孩子摆脱“机械数数”&#xff01;​mp.weixin.qq.com所以今天&#xff0c;助教就来分享一些借助实物的“数拆分”小游戏吧&#xff01;已经学会数量对应&#x…

python怎么使用预训练的模型_Keras使用ImageNet上预训练的模型方式

我就废话不多说了&#xff0c;大家还是直接看代码吧&#xff01; import keras import numpy as np from keras.applications import vgg16, inception_v3, resnet50, mobilenet #Load the VGG model vgg_model vgg16.VGG16(weightsimagenet) #Load the Inception_V3 model in…

NOIP模拟测试49·50「养花·折射·画作·施工·蔬菜·联盟」

一套题 养花 题解 分块\主席树 这里我用的是主席树 查询分段$1-(k-1)$找最大的,能向右找就向右找 for(ll nowl1,nowrk-1;nowl<maxx;nowlk,nowrk,nowrmin(nowr,maxx)){if(ansmod-1) break;chose(rt[r],rt[l-1],nowl,nowr,1,maxx);} 复杂度分析,调和级数$√n*log(n)$ 代码 #in…

宏任务和微任务执行顺序_确保任务的执行顺序

宏任务和微任务执行顺序有时有必要对线程池中的任务施加一定的顺序。 JavaSpecialists通讯的第206期提出了一种这样的情况&#xff1a;我们使用NIO从多个连接中读取数据。 我们需要确保来自给定连接的事件按顺序执行&#xff0c;但是不同连接之间的事件可以自由混合。 我想提出…

c语言中aver是什么意思_Linux系统top命令中的io使用率,到底是什么意思?

最近在做连续数据流的缓冲系统&#xff0c;C语言代码实现后&#xff0c;粗略测试了下&#xff0c;功能上应该没有问题。那么&#xff0c;接下来就该测试性能了。输入 top 命令&#xff0c;的确可以看到一系列 cpu 使用率&#xff0c;其中一个值得注意的子项就是 io 使用率了&am…

wireshark捕获选项不能用_wireshark的一些基础用法,欢迎收藏

About WiresharkWireshark是世界上最重要和使用最广泛的网络协议分析器。它让您在微观层次上看到网络上正在发生的事情&#xff0c;并且是许多商业和非营利性企业、政府机构和教育机构事实上(通常也是法律上)的标准。Wireshark的发展得益于全球网络专家的志愿贡献&#xff0c;并…

管理沟通-沟通框架

背景 管理三明治的承托&#xff0c;管理沟通。离开了沟通&#xff0c;所有的工作都将搁浅而无法前进。 常见话题&#xff1a; 向上沟通员工激励团队凝聚力提升向下沟通工作特点 工作职责说明技术开发计算机&#xff0c;编程语言&#xff0c;设计算法&#xff0c;开发功能&#…

NetBeans 9抢先体验

Java 9即将来临&#xff0c;NetBeans 9也即将来临。在本文中&#xff0c;我们将看到NetBeans 9 Early Access为开发人员提供的支持&#xff0c;以帮助他们构建Java 9兼容的应用程序。 Java 9提供了许多&#xff08;大约90种&#xff09; 新功能&#xff0c;包括Modules和JShel…

块裁剪后的矩形边界如何去掉_手持拍摄画面太抖?这节课教你如何快速稳定抖动的画面...

手持相机进行拍摄&#xff0c;画面会有较为明显的抖动&#xff0c;这节课就教大家如何稳定视频画面。素材导入到PR后&#xff0c;为素材添加变形稳定器效果&#xff0c;软件会自动开始分析。当前素材上方会显示在后台分析&#xff0c;这时候我们可以剪辑其他部分&#xff0c;并…

怎么把空字符串去掉_Python知识点字符串转整数需注意

↑↑↑关注后"星标"简说Python人人都可以简单入门Python、爬虫、数据分析简说Python严选 来源&#xff1a;简说Python 作者&#xff1a;老表One old watch, like brief python大家好&#xff0c;我是老表&#xff5e;Python知识点系列&#xff0c;学习了记得点赞、…

android-x86 镜像iso下载_Windows 10(1909)最新12月更新版MSDN官方简体中文原版ISO镜像下载+激huo工ju...

微软已于11月中旬开始大规模推送Windows 10操作系统的最新版本1909。此次更新官方未放出具体更新日志&#xff0c;但没有太多大功能更新&#xff0c;主要还是“修修补补”为主。现在&#xff0c;为大家带来本次官方最新原版ISO镜像下载&#xff0c;具体内部版本号为18363&#…

32查运行内存的map文件_Spark Shuffle调优之调节map端内存缓冲与reduce端内存占比

本文首先介绍Spark中的两个配置参数: spark.shuffle.file.buffer map端内存缓冲 spark.shuffle.memoryFraction reduce端内存占比很多博客会说上面这两个参数是调节Spark shuffle性能的利器&#xff0c;实际上并不是这样的。以实际的生产经验来说&#xff0c;这两个参数没…

odoo self.ensure_one()

源码&#xff1a; def ensure_one(self): """ Verifies that the current recorset holds a single record. Raises an exception otherwise. """ try: # unpack to ensure there is only one value is faster than len when…

模板 字段_劲爆新功能:轻流文字识别(OCR)功能支持自定义识别模板啦

Hi&#xff0c;又和大家见面啦&#xff5e;前段时间我们的文字识别(OCR)功能推出后&#xff0c;由于只支持系统提供的固定识别模板&#xff0c;很多客户跟我们反馈说&#xff1a;希望可以自定义识别模板&#xff01;现应大家的要求&#xff0c;轻流「文字识别(OCR)」的「自定义…

Java 9中的进程处理

一直以来&#xff0c;用Java管理操作系统进程都是一项艰巨的任务。 这样做的原因是可用的工具和API较差。 老实说&#xff0c;这并非没有道理&#xff1a;Java并非出于此目的。 如果要管理OS进程&#xff0c;则可以使用所需的Shell&#xff0c;Perl脚本。 对于面临更复杂任务的…