实践数据湖iceberg 第十课 快照删除

Flink SQL:DROP Statements 阅读详情

系列文章目录

实践数据湖iceberg 第一课 入门
实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式
实践数据湖iceberg 第三课 在sqlclient中,以sql方式从kafka读数据到iceberg
实践数据湖iceberg 第四课 在sqlclient中,以sql方式从kafka读数据到iceberg(升级版本到flink1.12.7)
实践数据湖iceberg 第五课 hive catalog特点
实践数据湖iceberg 第六课 从kafka写入到iceberg失败问题 解决
实践数据湖iceberg 第七课 实时写入到iceberg
实践数据湖iceberg 第八课 hive与iceberg集成
实践数据湖iceberg 第九课 合并小文件
实践数据湖iceberg 第十课 快照删除



前言

如第九课所讲,对文件进行合并,只是生成新的合并文件和快照文件,没有对原来的小文件进行删除。 本节,测试一下旧的数据删除,删旧数据,需要通过删旧快照进行,详情请看下文

1.基于hive的catalog,对表进行小文件合并代码

package org.example

import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment
import org.apache.hadoop.conf.Configuration
import org.apache.iceberg.catalog.{Namespace, TableIdentifier}
import org.apache.iceberg.flink.{CatalogLoader, TableLoader}
import org.apache.iceberg.flink.actions.Actions
import org.apache.log4j.{Level, Logger}
import org.slf4j.LoggerFactory
import java.util
import java.util.concurrent.TimeUnit
object FlinkDataStreamSmallFileCompactTest {
  private var logger: org.slf4j.Logger = _
  def main(args: Array[String]): Unit = {
    logger = LoggerFactory.getLogger(this.getClass.getSimpleName)
    Logger.getLogger("org.apache").setLevel(Level.INFO)
    Logger.getLogger("hive.metastore").setLevel(Level.WARN)
    Logger.getLogger("akka").setLevel(Level.WARN)

    // hadoop catalog
    val tablePath = "hdfs:///user/hive/warehouse/iceberg_db/iceberg_table"

    // hive catalog
    val env = StreamExecutionEnvironment.getExecutionEnvironment
    System.setProperty("HADOOP_USER_NAME", "root")
    val map = new util.HashMap[String,String]()
    map.put("type", "iceberg")
    map.put("catalog-type", "hive")
    map.put("property-version", "2")
    map.put("/warehouse", "/user/hive/warehouse")
//    map.put("datanucleus.schema.autoCreateTables", "true")
//    压缩小文件
//    快照过期处理
    map.put("uri", "thrift://hadoop101:9083")
    val iceberg_catalog = CatalogLoader.hive(
      "hive_catalog6",//catalog名称
      new Configuration(),
      new util.HashMap()
    )
    val identifier = TableIdentifier.of(Namespace.of("iceberg_db6"), //db名称
      "behavior_log_ib6")//表名称
    val loader = TableLoader.fromCatalog(iceberg_catalog, identifier)
    loader.open()
    val table = loader.loadTable()
    Actions.forTable(env, table)
      .rewriteDataFiles
      .maxParallelism(5)
      .targetSizeInBytes(128 * 1024 * 1024)
      .execute
    // 清除历史快照
    val snapshot = table.currentSnapshot
    // val old = snapshot.timestampMillis - TimeUnit.MINUTES.toMillis(5)
    if (snapshot != null) {
      table.expireSnapshots
        .expireOlderThan(snapshot.timestampMillis)
        .commit()
    }
  }
}

2. 合并运行过程

以下输出是,每间隔几秒执行一次
data目录最开始是17978 个,执行一段时间后,才执行查询命令
分析日志:先合并data目录,再合并medata目录,data的文件个数由17978->22个,metadata有26226->8716。 metadata是否还能继续合并?

[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data |wc
   5000   39995  994818
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/metadata |wc
  26226  209803 5269123
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data |wc
   3578   28619  711840
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data |wc
   3403   27219  677015
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data |wc
   3213   25699  639205
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data |wc
   3029   24227  602589
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data |wc
   2713   21699  539705
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/metadata |wc
  26226  209803 5269123
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data |wc
   2200   17595  437618
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/metadata |wc
  26226  209803 5269123
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data |wc
   1703   13619  338715
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data |wc
     22     171    4194
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data |wc
     22     171    4194
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data |wc
     22     171    4194
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/metadata|wc
  25344  202747 5102415
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/metadata|wc
  24937  199491 5025486
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data |wc
     22     171    4194
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/metadata|wc
  24447  195571 4932870
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/metadata|wc
  23667  189331 4785445
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/metadata|wc
  20402  163211 4168329
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/metadata|wc
   8716   69723 1751708
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/metadata|wc
   8716   69723 1751708
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/metadata|wc
   8716   69723 1751708
[root@hadoop103 hadoop]#    hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data |wc
     22     171    4194

合并后,data的内容:

[root@hadoop103 hadoop]#     hadoop fs -ls hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data
Found 21 items
-rw-r--r--   2 root supergroup     173182 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00000-0-3c21e5b1-54e8-42b1-8bdc-a0b8f1514ee1-00001.parquet
-rw-r--r--   2 root supergroup     173037 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00000-0-3c21e5b1-54e8-42b1-8bdc-a0b8f1514ee1-00002.parquet
-rw-r--r--   2 root supergroup     173149 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00000-0-3c21e5b1-54e8-42b1-8bdc-a0b8f1514ee1-00003.parquet
-rw-r--r--   2 root supergroup    3302206 2022-01-27 14:38 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00000-0-cdcc5019-0c59-41e4-80c6-1d4185455065-00001.parquet
-rw-r--r--   2 root supergroup        508 2022-01-26 11:35 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00000-0-dd8bc29f-831a-4904-830e-2ef56e4a4743-08707.parquet
-rw-r--r--   2 root supergroup     173032 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00001-0-139af0f5-d3ee-4f35-bd2e-73ce2aaf4792-00001.parquet
-rw-r--r--   2 root supergroup     173113 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00001-0-139af0f5-d3ee-4f35-bd2e-73ce2aaf4792-00002.parquet
-rw-r--r--   2 root supergroup     173124 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00001-0-139af0f5-d3ee-4f35-bd2e-73ce2aaf4792-00003.parquet
-rw-r--r--   2 root supergroup        552 2022-01-26 11:35 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00001-0-e9e8a782-fa82-4c4d-9786-c05b8aab251a-08707.parquet
-rw-r--r--   2 root supergroup       5995 2022-01-27 11:52 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00002-0-a0f46641-b14d-4f8b-a16e-4c768bcba775-00109.parquet
-rw-r--r--   2 root supergroup     173153 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00002-0-fe001b68-3753-44a7-adb4-63d43c8b3226-00001.parquet
-rw-r--r--   2 root supergroup     168653 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00002-0-fe001b68-3753-44a7-adb4-63d43c8b3226-00002.parquet
-rw-r--r--   2 root supergroup     173288 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00002-0-fe001b68-3753-44a7-adb4-63d43c8b3226-00003.parquet
-rw-r--r--   2 root supergroup     173023 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00002-0-fe001b68-3753-44a7-adb4-63d43c8b3226-00004.parquet
-rw-r--r--   2 root supergroup     173223 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00003-0-1d71db79-abf1-4088-9282-bc907e45e262-00001.parquet
-rw-r--r--   2 root supergroup     173039 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00003-0-1d71db79-abf1-4088-9282-bc907e45e262-00002.parquet
-rw-r--r--   2 root supergroup     172976 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00003-0-1d71db79-abf1-4088-9282-bc907e45e262-00003.parquet
-rw-r--r--   2 root supergroup     172950 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00003-0-1d71db79-abf1-4088-9282-bc907e45e262-00004.parquet
-rw-r--r--   2 root supergroup     540168 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00004-0-fea6f5d5-759f-4769-9ced-b3ecca214e36-00001.parquet
-rw-r--r--   2 root supergroup     173059 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00004-0-fea6f5d5-759f-4769-9ced-b3ecca214e36-00002.parquet
-rw-r--r--   2 root supergroup     172866 2022-01-27 14:16 hdfs://ns/user/hive/warehouse/hive_catalog6/iceberg_db6.db/behavior_log_ib6/data/00004-0-fea6f5d5-759f-4769-9ced-b3ecca214e36-00003.parquet

3.是否能多次合并?

只跑删快照代码,发现删不动了。
在这里插入图片描述
合并代码继续跑,发现不再合并(跑了几次都是这样)
在这里插入图片描述

总结

数据文件减少明显,metadata还存在很多,没法减少(只减少为原来的1/3),经过分析删除的是snapshot文件和manifiest文件,metadata.json没有删除(剩余没删掉的就是metadata.json)。

表数据没有变化的情况下,多次进行合并的效果跟合并一次是一样的。

有个疑问:对于分区表的小文件删除,是怎样的呢?能否支持基于分区进行合并?
请看下一课

数据湖技术之Iceberg-01 原理解析、特性演进与Hive集成指南 数据湖技术是集中存储多源异构数据的解决方案,支持批流一体处理。传统数据仓库难以满足实时分析需求,而Kappa架构存在存储和查询限制。Apache Iceberg作为开放表格式,支持ACID事务、分区演化、模式变更等特性,实现存储层统一。其分层元数据设计(Snapshot、Manifest等)与轻量级集成能力,解决了实时数仓的痛点,成为大数据领域的重要技术。 阅读详情

相关推荐

数据湖存储解决方案之Iceberg

Apache Iceberg 是由 Netflix 开发开源的,其于2018年11月16日进入 Apache 孵化器,是 Netflix 公司数据仓库基础。Apache Iceberg设计初衷是为了解决Hive离线数仓计算慢的问题,经过多年迭代已经发展成为构建数据湖服务的表格式标准。Iceberg 本质上是一种专为海量分析设计的表格式标准,可为主流计算引擎如 Presto、Spark 等提供高性能的读写和元数据管理能力。

marui156的专栏 7950

Iceberg 合并datafiles、manifest files,清除过期snapshot、删除孤立文件

文章介绍了数据湖组件iceberg 表相关的治理,包括datafile合并、metadata file合并、孤立文件删除、过期快照删除等操作。

xhaoDream的博客 1510

实践数据湖iceberg 第十二课 catalog是什么

系列文章目录 实践数据湖iceberg 第一课 入门 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql方式从kafka读数据到iceberg 实践数据湖iceberg 第四课 在sqlclient中,以sql方式从kafka读数据到iceberg(升级版本到flink1.12.7) 实践数据湖iceberg 第五课 hive catalog特点 实践数据湖iceberg 第六课 从kafka写入到iceber

spark_dev的博客 3849

实践数据湖iceberg 第三十九课 清理快照前后数据文件变化分析

分析hive_iceberg_catalog.system.expire_snapshots()命令前后,数据湖表底层发生的变更

spark_dev的博客 1676

大数据的下一代变革-数据湖之Iceberg

1. 什么是数据湖 1.1 什么是数据湖 数据湖是一个集中式的存储库,允许以任意模式存储多个来源,所有结构化和非结构化数据,可以按照原样存储数据,无需对数据进行结构化处理,并运行不同类型的分析,对数据进行加工,例如:大数据处理,实时分析,机器学习,以指导做出更好的决策。 1.2 大数据为什么需要数据湖 当前基于Hive的离线数据仓库已经非常成熟,在传统的离线数据仓库中对记录级别的数据进行更新是非常麻烦的,需要对待更新的数据所属的整个分区,甚至时整个表进行全面覆盖才行,由于离线数仓多级逐层加工的架构设计,数据

wenqi 6181

Apache Iceberg结合Parquet列式存储:数据湖事务一致性实践

你有没有遇到过这样的场景?这些问题的根源,在于。Parquet作为列式存储格式,解决了查询性能问题,但数据写入、更新、删除的原子性、隔离性全得靠工程师手动保证——这在大规模数据场景下,几乎是「不可能完成的任务」。而Apache Iceberg的出现,正好补上了数据湖的「事务层」短板。当Iceberg与Parquet结合时,既能保留列式存储的查询效率,又能实现等企业级特性。这不是「1+1=2」的简单组合,而是「数据湖从野蛮生长到工业化运营」的关键一步。

AI智能探索者的博客 1126

iceberg snapshots快照删除接口源码分析

iceberg快照删除接口提供了一系列方法来控制过期快照的删除行为。通过调用不同的方法,可以设置要过期的快照ID、过期时间戳以及保留最近祖先快照的数量等。此外,还可以传递替代的删除实现和执行删除的ExecutorService。方法设置是否清理底层清单文件和数据文件

wang2leee的博客 568

Apache Iceberg 深度解析:构建企业级数据湖的最佳实践

在数字经济时代,数据已成为企业最核心的战略资产之一。为了充分挖掘数据价值,企业纷纷构建数据湖,期望将海量、多源、异构的数据汇聚一处,进行统一存储和分析。数据可靠性差:缺乏强事务保证,容易出现数据不一致、部分写入或脏数据。元数据管理混乱:依赖于Hive Metastore的简单元数据模型,难以支持复杂的表结构演化和细粒度的数据组织。查询性能低下:基于目录的分区方式导致文件扫描范围过大,谓词下推能力有限。数据治理困难:缺乏有效的版本控制、行级权限和数据血缘追踪能力。Schema演化痛苦。

AI Python 编程之道的博客 990

Iceberg从入门到精通系列之一:Iceberg核心概念理解

Manifest(清单):描述Table状态的元数据,包括Table的Schema(模式)、Partition Spec(分区规范)和Current Snapshot ID(当前快照ID)等信息。Partition(分区):将数据按照指定规则分隔成的逻辑单元,Partition由一个或多个数据块(Block)组成。Block(块):其中存储的是Partition的数据,每个块都有一个唯一的ID,块的大小可以在表级别进行配置。创建了一个包含id和name字段的表,并且定义了以id字段为分区键的分区规则。

zhengzaifeidelushang的博客 8687

数据湖技术选型指南:Iceberg vs Delta Lake vs Paimon

摘要:主流开源数据湖格式对比分析 本文对比了三种主流开源数据湖格式(Iceberg、Delta Lake、Paimon)的核心原理与实现差异。

Kami‘s home 1053

Hudi、Iceberg 、 Paimon 数据湖选型对比

Hudi、Iceberg 和 Paimon 是当前数据湖领域的三大主流开源框架,均致力于解决数据湖场景下的等核心问题,但设计理念和适用场景存在差异。

LXP 2509

实践数据湖iceberg 第四十课 iceberg的sql运维方式(合并文件、合并元数据、清理历史快照)

iceberg的sql化运维(合并文件、合并元数据、清理历史快照)

spark_dev的博客 1570

人工智能的未来:从弱 AI 到通用人工智能(AGI)

从最初的简单自动化程序,到如今的深度学习大模型(如 ChatGPT、DeepSeek、Grok),AI 逐步从弱人工智能(Weak AI)向更智能、更自主的方向发展。AI 的发展将影响就业市场,取代重复性、低技能的工作,同时创造新的高技能岗位。尽管深度学习带来了巨大的进步,但它仍然依赖大量标注数据进行训练,对新环境的泛化能力有限,这也是当前 AI 迈向 AGI 的关键障碍之一。本文将探讨 AI 从弱 AI 进化到 AGI 的可能性,分析目前 AI 技术的局限性,并展望未来 AI 在各个行业的影响。

qq_20245171的博客 1万+

实践数据湖iceberg 第二十四课 iceberg元数据详细解析

本文彻底解释 iceberg元数据 存储细节 实践数据湖icerberg专栏 本专栏记录iceberg菜鸟到专家的过程,记录踩坑,填坑,iceberg特征的了解与原理的认知

spark_dev的博客 5560

Android System Slice应用加载分析,及启用Slice后,锁屏日期第一次开机正常显示,但后面锁屏不显示问题分析

最近发现Android P上锁屏界面,日期不显示,发现从P开始后,出现了Slice来允许应用以模块化,可交互的方式,插入多个使用场景。Android P的system UI 也使用到了这一特性,表现为锁屏时间,日期,勿扰图标,闹钟等。 如何使用Slice 以System UI中KeyguardSliceView.java来说明它的使用方法 首先,我们打开System UI 的mk 文件,可以看到以...

qq_33595823的博客 3035

量化策略缺数据?一份QMT/PTrade免费数据清单与特殊数据源QtFactor评测

本文为量化策略开发者提供QMT和PTrade平台的免费数据资源清单,并深度评测QtFactor在补充特色数据方面的价值。涵盖Tick级数据、Level2行情、资金流向等关键信息,帮助开发者在预算有限的情况下构建高效数据解决方案,特别适合打板策略和日内回转交易。

weixin_29058331的博客 412

实践数据湖iceberg 第十一课 测试分区表完整流程(造数、建表、合并、删快照)

系列文章目录 实践数据湖iceberg 第一课 入门 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql方式从kafka读数据到iceberg 实践数据湖iceberg 第四课 在sqlclient中,以sql方式从kafka读数据到iceberg(升级版本到flink1.12.7) 实践数据湖iceberg 第五课 hive catalog特点 实践数据湖iceberg 第六课 从kafka写入到iceber

spark_dev的博客 4444

手把手教你学Simulink--控制执行场景实例:基于Simulink的智能车辆自动紧急制动(AEB)仿真

本文完成了基于 Simulink 的智能车辆自动紧急制动(AEB),实现了:✅ 构建前车急刹与静止障碍物典型场景✅ 设计基于 TTC 的三级 AEB 决策逻辑✅ 验证在高风险场景下有效避免碰撞✅ 掌握从风险评估到制动执行的完整安全链✅ 为ADAS 主动安全功能开发奠定基础。

MHD0815的博客 236

实践数据湖iceberg 第三十八课 spark sql, Procedures语法进行数据治理(小文件合并,清理快照)

从kafka源写入iceberg,会生成大量的小文件,合并小文件,有代码的方式,spark3结合iceberg0.11后,支持使用sql方式实现文件治理,本文记录 expire_snapshots,rewrite_manifests的运行效果与底层文件的变化

spark_dev的博客 2448

简谈基于FPGA的千兆以太网设计

简谈基于FPGA的千兆以太网设计 今天给大侠带来简谈基于FPGA的千兆以太网设计,话不多说,上货。 今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较高级的内容了,有些大侠肯定会感觉以太网学习起来非常不容易。其实,我可以告诉大家,前期学习的基础打扎实了,后期的学习也没那么难。总之就是说难没那么难,说容易也不是那么容易。那么,言归正传,下面让我们一起来聊一聊以太网的学习。 说起以太网,大家可能就会想到百兆以太网、千兆以太网以及万兆以太网等等。局域以太网从10M开始发展,经历几多的变迁,发展到现

3619

45、使用 sqlread 函数将数据从数据库表导入 MATLAB

本文详细介绍了如何使用 MATLAB 中的 `sqlread` 函数从不同类型的数据库(如 Microsoft SQL Server 和 SQLite)中导入数据。文章涵盖了 `sqlread` 的基本语法、输入输出参数、使用示例以及注意事项,并通过多个实例演示了自定义导入选项、元信息检索和数据类型转换等内容。此外,还总结了导入数据库数据的通用流程及最佳实践建议,帮助用户更高效地进行数据分析和处理工作。

bash7scripter的博客 133

数据湖之Iceberg

Apache Iceberg 是一个用于大规模数据集的开源表格式库,旨在解决传统数据湖在管理大型数据集时遇到的挑战。它由Netflix创建,并捐赠给了Apache软件基金会。Iceberg旨在提供一种高效、灵活且可扩展的方式来处理海量数据,同时保持强大的事务性保证。

youziguo的专栏 2054

高云FPGA系列教程(8):ARM串口数据接收(中断和轮询方式)

GW1NSR-4C ARM部分共有2个串口外设,都挂载在APB1总线上,最高支持波特率921.6Kbit/s,无奇偶校验位,8位数据位,1位停止位,支持高速测试模式 HSTM(High Speed Test Mode),即每个时钟周期输出1位数据,可以在短时间内传输大量数据。官方手册上没有描述发送和接收缓存FIFO的深度,所以不确定是否支持缓存。

whik1194的博客 1684

实践数据湖iceberg 第八课 hive与iceberg集成

系列文章目录 实践数据湖iceberg 第一课 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql方式从kafka读数据到iceberg 实践数据湖iceberg 第四课 在sqlclient中,以sql方式从kafka读数据到iceberg(升级版本到flink1.12.7) 实践数据湖iceberg 第五课 hive catalog特点 实践数据湖iceberg 第六课 从kafka写入到iceberg失败

spark_dev的博客 8679

C和C++Everything教程的简介

C和C++Everything教程的简介 C和C++Everything教程,该专栏目前已有8000博文,订阅该专栏相当于同时订阅以下所有收费专栏

希望我的博客,能帮上你解决学习中工作中所遇到的问题 4389

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

数据湖 | 还不知道什么是Iceberg?一篇文章带你走进Iceberg的世界!

文章目录1. Iceberg是什么?2. 能力与优势2.1 Iceberg都有哪些功能?2.2 Iceberg能力验证3. Iceberg应用场景参考文档 近年来“数据湖”的概念在大数据领域如火如荼。delta、Apache Iceberg和Apache Hudi是市面上流行的三大数据湖解决方案,那到底这些方案是什么?又怎么使用?本文参考官网文档,带你快速入门iceberg,并从几个简单的例子出发,感受iceberg的能力。 1. Iceberg是什么? Iceberg定位在计算引擎之下,存储之上,通过特定

search-lemon的博客 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: 实践数据湖iceberg 第九课 合并小文件
下一篇: HiveServer2运行慢,不定时宕机,问题排查
*星星之火*
博客等级 码龄12年 3798粉丝 222原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值