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

南宁网站建设seo优化营销制作电商的网站设计

南宁网站建设seo优化营销制作,电商的网站设计,营销策划师,wordpress 使用插件本文介绍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.dnsts.com.cn/news/133250.html

相关文章:

  • 北京外贸网站优化wordpress产品页面模板下载
  • 空间代码网站有经验的南昌网站设计
  • 网站建设的国内外现状页面具有动态效果网站建设
  • 网站怎么查看访问量全国工商网站查询企业信息
  • 网站设置合理的内链机制深圳皇冠科技有限公司网站
  • 单页营销网站设计第三方物流网站建设
  • 台州免费做网站wordpress单页主题营销
  • 哪里有做杂志的免费模板下载网站适合网站设计的gif图片
  • 网站建设 外文文献网站建设注册
  • 建网站需要多少钱2017免费咨询医生皮肤科专家
  • 钓鱼网站模板制作邢台网红排行榜
  • 律所网站建设国队男子接力赛最高级网站建设
  • 汉中免费做网站成华网站制作
  • 平湖新埭哪里有做网站的精湛的合肥网站建设
  • 建一个app和网站那个比较好做网站用什么服务器好
  • 网站项目开发流程有哪七步南京中小企业网站制作
  • 环球旅行社网站建设规划书论文WordPress对接QQ聊天
  • 桦甸市建设局网站百度搜索关键词排名
  • 中文域名交易网站建设网站需要购买虚拟主机吗
  • 深圳网络做网站千锋教育和达内哪个好
  • 国美的网站做的怎么样公司变更登记申请书下载
  • 网站建设怎么招聘入侵网站后台管理系统
  • 做兼职用什么网站最好上杭网站建设公司
  • 一个网站服务器一年大概多少钱html5网站图标
  • 建网站-湛江市wordpress主题idowns下载
  • 设计网站如何推广企业网站怎样做
  • 戴南网站建设汕头信息网官网
  • 宁夏 网站开发开发者账号
  • 哪个网站可以做旅行攻略国内网页做的好看的网站
  • php可视化网站开发网址导航推广