当前位置: 首页 > news >正文

广州购物网站建设关于公司建设网站的意义

广州购物网站建设,关于公司建设网站的意义,大连网络广告,企业一般用哪个erp系统本文介绍Hudi在 Spark 和 Flink 中使用SQL创建和更改表的支持。 1.Spark SQL 创建hudi表 1.1 创建非分区表 使用标准CREATE TABLE语法创建表#xff0c;该语法支持分区和传递表属性。 CREATE TABLE [IF NOT EXISTS] [db_name.]table_name[(col_name data_type [COMMENT col_co… 本文介绍Hudi在 Spark 和 Flink 中使用SQL创建和更改表的支持。 1.Spark SQL 创建hudi表 1.1 创建非分区表 使用标准CREATE TABLE语法创建表该语法支持分区和传递表属性。 CREATE TABLE [IF NOT EXISTS] [db_name.]table_name[(col_name data_type [COMMENT col_comment], ...)][COMMENT table_comment][PARTITIONED BY (col_name, ...)][ROW FORMAT row_format][STORED AS file_format][LOCATION path][TBLPROPERTIES (property_nameproperty_value, ...)][AS select_statement]; 创建一个非分区表就像创建一个常规表一样简单。 -- create a Hudi table CREATE TABLE IF NOT EXISTS hudi_table (id INT,name STRING,price DOUBLE ) USING hudi; SparkSQL和Hudi字段类型比较 Spark Hudi Notes boolean boolean byte int short int integer int long long date date timestamp timestamp float float double double string string decimal decimal binary bytes array array map map struct struct char not supported varchar not supported numeric not supported null not supported object not supported 1.2 创建分区表 分区表可以通过添加partition by子句来创建。分区有助于根据分区列将数据组织到多个文件夹中。它还可以通过限制扫描的元数据、索引和数据的数量来帮助加快查询和索引查找。 CREATE TABLE IF NOT EXISTS hudi_table_partitioned (id BIGINT,name STRING,dt STRING,hh STRING ) USING hudi TBLPROPERTIES (type  cow ) PARTITIONED BY (dt); 还可以通过提供逗号分隔的字段名来创建由多个字段分区的表。例如“partitioned by dthh” 1.3 创建包含键和排序字段的表 表使用键跟踪表中的每个记录。Hudi 为每个新记录自动生成了一个高度压缩的键。如果要使用现有字段作为关键字可以设置primaryKey选项。通常这还要配置preCombineField选项以处理传入写入中具有相同键的无序数据和潜在重复记录。 CREATE TABLE IF NOT EXISTS hudi_table_keyed (id INT,name STRING,price DOUBLE,ts BIGINT ) USING hudi TBLPROPERTIES (type  cow,primaryKey  id,preCombineField  ts );1.4 外部表 通常Hudi表是由流式写入器如streamer tool,创建的后者可能需要一些SQL语句才能在其上运行。可以使用location 语句创建外部表。不需要指定schema和除分区列之外的任何properties,Hudi可以自动识别schemo和配置。 CREATE TABLE hudi_table_external USING hudi LOCATION file:///tmp/hudi_table/;1.5 Create Table As Select (CTAS) Hudi支持CTAScreate table as select来支持Hudi表的创建和数据加载。为了确保高效地执行此操作即使对于大负载CTAS也使用bulk insert写入操作。 1.5.1 使用CATS创建分区表 # create managed parquet table CREATE TABLE parquet_table USING parquet LOCATION file:///tmp/parquet_dataset/;# CTAS by loading data into Hudi table CREATE TABLE hudi_table_ctas USING hudi TBLPROPERTIES (type  cow,preCombineField  ts ) PARTITIONED BY (dt) AS SELECT * FROM parquet_table;1.5.2 使用CATS创建非分区表 创建非分区表时也可以使用create table as select。 # create managed parquet table CREATE TABLE parquet_table USING parquet LOCATION file:///tmp/parquet_dataset/;# CTAS by loading data into Hudi table CREATE TABLE hudi_table_ctas USING hudi TBLPROPERTIES (type  cow,preCombineField  ts ) AS SELECT * FROM parquet_table;1.5.3在使用CATS时设置主键 可以通过在表属性中设置primaryKey。 CREATE TABLE hudi_table_ctas USING hudi TBLPROPERTIES (type  cow,primaryKey  id ) PARTITIONED BY (dt) AS SELECT 1 AS id, a1 AS name, 10 AS price, 1000 AS dt;1.5.4使用CATS复制数据 可以通过create table as select 复制外部表数据。 # create managed parquet table CREATE TABLE parquet_table USING parquet LOCATION file:///tmp/parquet_dataset/*.parquet;# CTAS by loading data into hudi table CREATE TABLE hudi_table_ctas USING hudi LOCATION file:///tmp/hudi/hudi_tbl/ TBLPROPERTIES (type  cow ) AS SELECT * FROM parquet_table; 1.6 设置Hudi配置 可以通过不同的方法传递给定hudi表的配置。 使用set命令 可以使用set命令来设置Hudi的任何写入配置。这将适用于整个spark会话中的操作。 set hoodie.insert.shuffle.parallelism  100; set hoodie.upsert.shuffle.parallelism  100; set hoodie.delete.shuffle.parallelism  100; 使用表属性 还可以在创建表时配置表选项。这将仅适用于当前表并覆盖任何SET命令值。 CREATE TABLE IF NOT EXISTS tableName (colName1 colType1,colName2 colType2,... ) USING hudi TBLPROPERTIES (primaryKey  ${colName1},type  cow,${hoodie.config.key1}  ${hoodie.config.value1},${hoodie.config.key2}  ${hoodie.config.value2},.... );e.g. CREATE TABLE IF NOT EXISTS hudi_table (id BIGINT,name STRING,price DOUBLE ) USING hudi TBLPROPERTIES (primaryKey  id,type  cow,hoodie.cleaner.fileversions.retained  20,hoodie.keep.max.commits  20 );1.7 表属性 可以在创建表时设置表属性。 1.7.1 常用表属性 参数名 默认值 描述 type cow 要创建的表类型。typecow创建COPY-ON-WRITE表typemor创建MERGE-ON-READ表。与hoodie.datasource.write.table.type相同。 primaryKey uuid 表的主键字段名用逗号分隔。与hoodie.datasource.write.recordkey.field相同。如果忽略此配置hudi将自动生成主键。如果明确设置则主键生成将使用用户配置。 preCombineField 表的预合并字段。它用于在多个版本之间解析记录的最终版本。通常事件时间或其他类似列将用于排序目的。Hudi将能够使用preCombine字段值处理无序数据。 primaryKey、preCombineField、type和其他属性区分大小写。 1.7.2并发写入器的Passing Lock Providers  Hudi需要一个锁提供程序来支持并发写入程序或异步表服务。用户也可以将这些表属性传递到TBLPROPERTIES中。下面是一个基于Zookeeper的配置示例。 -- Properties to use Lock configurations to support Multi Writers TBLPROPERTIES(hoodie.write.lock.zookeeper.url  zookeeper,hoodie.write.lock.zookeeper.port  2181,hoodie.write.lock.zookeeper.lock_key  tableName,hoodie.write.lock.provider  org.apache.hudi.client.transaction.lock.ZookeeperBasedLockProvider,hoodie.write.concurrency.mode  optimistic_concurrency_control,hoodie.write.lock.zookeeper.base_path  /tableName )1.7.3为表启用列统计信息/记录级别索引 Hudi提供了利用有关表的丰富元数据和索引、加快DML和查询的能力。例如可以启用列统计信息的收集来执行快速数据跳过或者可以使用以下表属性使用记录级别索引来执行快速更新或点查找。 TBLPROPERTIES(hoodie.metadata.index.column.stats.enable  truehoodie.metadata.record.index.enable  true )1.8 Spark Alter Table 语法 -- Alter table name ALTER TABLE oldTableName RENAME TO newTableName;-- Alter table add columns ALTER TABLE tableIdentifier ADD COLUMNS(colAndType [, colAndType]); 样例 --rename to: ALTER TABLE hudi_table RENAME TO hudi_table_renamed;--add column: ALTER TABLE hudi_table ADD COLUMNS(remark STRING); 1.9 修改表属性 语法 -- alter table ... set|unset ALTER TABLE tableIdentifier SET|UNSET TBLPROPERTIES (table_property  property_value); 样例 ALTER TABLE hudi_table SET TBLPROPERTIES (hoodie.keep.max.commits  10); ALTER TABLE hudi_table SET TBLPROPERTIES (note  dont drop this table);ALTER TABLE hudi_table UNSET TBLPROPERTIES IF EXISTS (hoodie.keep.max.commits); ALTER TABLE hudi_table UNSET TBLPROPERTIES IF EXISTS (note); 当前尝试更改列类型可能会引发错误。不支持将列colName的oldColType更改为colName的newColType。由于一个开放的SPARK问题。 1.10 修改配置属性 还可以通过alter table SET SERDEPROPERTIES更改表的写入配置。 语法 -- alter table ... set|unset ALTER TABLE tableName SET SERDEPROPERTIES (property  property_value); 样例  ALTER TABLE hudi_table SET SERDEPROPERTIES (key1  value1); 1.11 展示和删除分区 语法 -- Show partitions SHOW PARTITIONS tableIdentifier;-- Drop partition ALTER TABLE tableIdentifier DROP PARTITION ( partition_col_name  partition_col_val [ , ... ] ); 样例 --Show partition: SHOW PARTITIONS hudi_table;--Drop partition ALTER TABLE hudi_table DROP PARTITION (dt2021-12-09, hh10);1.12 使用限制 Hudi目前在使用Spark SQL创建/更改表时有以下限制。 1)  ALTER TABLE ... RENAME TO ...使用AWS Glue Data Catalog作为配置单元元存储时不支持因为Glue本身不支持表重命名。 2Spark SQL创建的新Hudi表将默认设置hoodie.datasource.write.hive_style_partitioningtrue以便于使用。这可以使用表属性重写。 2.Flink SQL 创建Hudi表 2.1 创建catalog catalog有助于管理SQL表如果catalog保留表定义则可以在会话之间共享表。对于hms模式catalog还补充了配置单元同步选项。 样例 CREATE CATALOG hoodie_catalogWITH (typehudi,catalog.path  ${catalog default root path},hive.conf.dir  ${directory where hive-site.xml is located},modehms -- supports dfs mode that uses the DFS backend for table DDLs persistence); 选项 选项名 必填项 默认值 描述 catalog.path true catalog表存储的默认路径该路径用于自动推断表路径默认表路径$catalog.path/$db_name/${table_name default-database false default 默认数据库名称 hive.conf.dir false hive-site.xml所在的目录仅在hms模式下有效 mode false dfs 支持使用hms持久化表选项的hms模式 table.external false false 是否创建外部表仅在hms模式下有效 2.2  Create Table CREATE TABLE hudi_table2(id int, name string, price double ) WITH ( connector  hudi, path  s3://bucket-name/hudi/, table.type  MERGE_ON_READ -- this creates a MERGE_ON_READ table, default is COPY_ON_WRITE );2.3 修改表 ALTER TABLE tableA RENAME TO tableB;
http://www.tj-hxxt.cn/news/233432.html

相关文章:

  • 电子商务网站建设的评估工具机顶盒做网站
  • 中国建设银行黄冈分行网站织梦怎么制作网站
  • 电脑网站与手机的区别.net做网站之前设置
  • 发表评论的wordpress网站模板腾讯云物联网开发平台
  • 网站开发公司云鲸互创实惠做柜子比较好看的网站
  • php完整网站开发案例四川华地建设工程公司网站
  • 租赁公司网站源码新媒体运营需要具备哪些能力
  • 在常州 做兼职上什么网站模板网站 怎么做优化
  • 为什么用asp做网站网站制作排版注意事项
  • 帮忙做ppt赚钱的网站辽阳银梦网站建设
  • 山西企业模板建站服务营销
  • 中国城乡与住房建设部网站装修设计图网站排名
  • 城市分站cmswordpress加速之gzip
  • php做小公司网站用什么框架厦门建设局网站
  • 宁波seo推广推荐公司aso优化技术
  • 长春建站怎么做cf小号自助购买网站
  • 网站整体地图怎么做做网站是否用数据库
  • 网站建设课设总结自助建网站哪个便宜
  • h5模板网站免费有哪些做兼职的设计网站有哪些
  • 深圳网站设计兴田德润简介wordpress需要备案
  • dede网站搬家更换空间重新安装普通话考试最后一题万能模板
  • 2014 网站建设wordpress加文字水印
  • 遂宁网站建设跨境o2o网站建设方案
  • 国外公司建站系统wordpress mylife
  • 网站充值功能怎么做在线考试系统网站开发
  • 拼多多网站建设框架图可以做外贸私单的网站
  • 网站推广无锡番禺网站建设番禺网络营销
  • 济南章丘网站建设响应式网站布局
  • 电子商务网站设计心得一单一结手机兼职
  • 普陀区网站建设前端wordpress文章编辑器可视化