首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏大大刺猬

    frm2sdi (2) sdi内容讲解

    导读除了在数据字典中有元数据信息外, mysql还在ibd里面存储了该数据文件对应的表的元数据信息.这部分信息就叫做 Serialized Dictionary Information (SDI). SDI则是个单独的文件(tbl_name.sdi). 如果是innodb存储引擎, 则和数据放一起, 在第0-1个segment中, 相当于一行特殊的数据(只有text字段). 如果是直接在8.0环境创建的表,则通常位于第3页(原本cluster index的root page位置).我们可以使用ibd2sdi工具去解析innodb表的sdi信息(general tablespace 并没有找到相关的文档说明, 所以我们本文主要就是来看各个key的含义.SDI之前我们说了sdi实际上就是json格式的数据. ":sdi版本, 比如80019]dd_objectdd_object就是主要的sdi信息了.name表名字options表的属性, 比如: "options":"avg_row_length=0;encrypt_type

    56630编辑于 2025-01-20
  • 来自专栏大大刺猬

    mysql 寻找SDI PAGE

    对于原本就是8.0环境的ibd文件, 第4页就是SDI PAGE, 之前的ibd2sql也是直接解析第四页得到的.但对于从5.7升级到8.0的ibd文件. sdi page就不在这里了. (参考官方ibd2sdi.cc)objectsize(byte)FIL_HEADER38SPACE_HEADER112XDES40*256INFO_MAX111 + 4HAVE_SDI_PAGE4SDI_PAGE_NO4 = SDI_VERSION:print('Unexpected SDI version. ',version)sys.exit(1)SDI_OFFSET += 4sdi_page_no = struct.unpack('>I',fsp_bdata[SDI_OFFSET:SDI_OFFSET+ 4])[0]#print('SDI PAGE NO: ',sdi_page_no)f.seek(16384*sdi_page_no,0)bdata = f.read(16384)offset = struct.unpack

    49221编辑于 2023-10-13
  • 来自专栏瓜大三哥

    SDI中的GTX

    通常预加重器和去预加重器用在高速传输信号的发送端,均衡器用在接收端,在SDI链路中只在接收端采用均衡器,一般采用自适应均衡器。 重定时器 SDI重定时器是用来自动检测输入信号类型,调整自身的PLL和CDR电路而恢复和整形出低抖动的时钟,再重新定时发送出接收到的SDI信号,以降低SDI信号的抖动。 虽然均衡器也可以降低SDI信号的抖动,但它和定时器是两种完全不同的器件,两者不可互相替代。 如果SDI传输通道比较长或者在传输过程中被其他噪声和干扰恶化,仅有均衡器还不足以改善信号的质量,此时在均衡器输出端再串接一个重定时器是一个理想的提高SDI信号质量的方案。 HD-SDI RX Operation rx_usrclk 必须是74.25 MHz or 74.25/1.001 MHz ?

    1.1K50发布于 2018-07-30
  • 来自专栏瓜大三哥

    SD-SDI数据解析

    图1 SD-SDI行数据格式 起始码(SAV)和结束码(EAV),它是标志着一行的开始结束的重要标记,也包含了其他的一些重要的信息,后面将会讲到。 为什么一行中的有效数据是 1440 字节? SDI-SD的数据都是422格式的,如图2所示。 ? 图3 SD-SDI数据流格式 ? 图4 SD-SDI时序图 每个字节数据的含义如图5所示,请注意,视频数据有一个由三个字节构成的前导码(8bit视频是0xFF,0x00,0x00,而10bit视频则是0x3FF, 0x000, 0x000 图5 SD-SDI数据字节含义 Bit7 Bit6 Bit5 Bit4 Bit3-0(P3P2P1P0) Hex Description 1 0 0 0 0000 0x80 Even,Active,SAV

    3.6K50发布于 2018-07-30
  • 来自专栏大大刺猬

    frm2sdi (1) 再探frm结构

    在8.0中由SDI取代了. 那么就可以将frm转为sdi, 这样我们的ibd2sql就不需要额外创建一个8.0的空表了.在此之前我们得先了解下frm和sdi的结构. sdi就是1条特殊的数据行, 格式是json的, 我们使用ibd2sdi 结构如下对象 大小 描述 size 2 注释大小commentsize注释内容主键索引中是不包含非索引字段的, 和sdi的区别DEFAULT_VALUE接着就是默认值了, 没想到吧, 而sdi中则包含了这部分信息. 应该是分3篇来讲, 本篇未frm结构, 下一篇为sdi结构, 最后一篇为frm转sdi.最终要实现的frm2sdi效果差不多如下:我们还是来画个图总结下吧:参考:https://github.com/mysql

    43030编辑于 2025-01-17
  • 来自专栏大大刺猬

    frm2sdi(3) 将frm文件转为sdi page & ibd2sql v1.9 出土

    导读终于来到frm2sdi的最后一章, 本章将如何将frm转为sdi. 前面两张分别将了frm的结构和sdi的结构. 但frm有部分元数据信息没有细看, 主要是太复杂了, 所以挪到本章来讲. 待我们将frm转为sdi之后, 我们就可以使用ibd2sql来直接解析mysql 5.7的文件了, 不在需要转到8.0里面去了.最终效果大概如下:decimal的0开头懒得去掉了, 毕竟这只是一个过渡版本 .frm2sdi元数据信息frm部分信息, 目前主要还剩metadata那17字节. ibd2sql v1.9我只是抽取了部分比较关键的信息讲了, 感兴趣的可以直接看ibd2sql中的相关代码. v1.9版本主要是修复一个已知BUG和支持直接解析5.7的ibd文件, 即自动解析frm文件并构造一个sdi mysqldata/ibd2sql/ddcw_alltype_table.ibd --ddl虽然看着比较怪, 明明是解析frm文件, 却指定的是ibd文件....总结frm主要是信息比较紧凑, 而且不容易扩展. sdi

    59320编辑于 2025-02-07
  • 来自专栏媒矿工厂

    SDI向IP过渡中的标准化

    伴随业务的发展、新媒体的不断拓展、高清化网络制播的发展,广播电视中心从节目制作播出到节目传输中的以SDI设备为基础的技术架构,已难以满足未来技术和业务扩展的发展需求,实现基础架构IP化,将IP与SDI技术架构相互融合 网关(将SDI转换为IP或从SDI转换为IP的设备)提供了SDI和IP传输之间的转换:将一个或多个基本流聚合为10 GbE,25 GbE或更高带宽的网段,并提供信号缓冲以确保适当的时间对准,同时还可以在 网关是IP和SDI设施间的"胶水",提供将IP整合到SDISDI整合到IP中的方法。但迁移到IP的决定取决于IP与SDI设备的比例。设备中包含的IP连接设备越多,使用IP路由器的可能性就越大。 IP路由设计 与SDI相比,IP路由有更多的选择。在SDI路由中,一个同轴电缆等于一个SDI信号。在IP路由中,一个端口可能携带多个IP流。 IP中的设备发现和注册 在传统的SDI路由中,输出SDI的设备连接到矩阵上的输入端口(源),并且希望SDI的设备连接到矩阵上的输出端口(目的地),所有信号切换发生在矩阵内。

    2.9K21发布于 2018-07-26
  • 来自专栏大大刺猬

    MYSQL INNODB ibd文件详解 (3) FIL_PAGE_SDI

    虽然上一章已经提取了DDL, 但是存储DDL的sdi页还没有讲.... 现在补上呗..FIL_PAGE_SDI是存储数据字典的, 8.0把它和表放一起了. FIL_TRAILER8图片PYTHON解析SDIsdi信息里面并没有唯一索引的区别, 只有主键索引和普通索引, 推测唯一约束由server层实现.import innodb_sdiaa = innodb_sdi.sdi ('/data/mysql_3314/mysqldata/db1/ddcw_benchmark__12.ibd')print(aa.get_ddl())#aa.get_dic() #返回字典图片总结sdi_page #解析sdi page#storage/innobase/dict/dict0crea.cc#STRUCT:#FIL_HEADER 38#PAGE_HEADER 56#INFIMUM 13 (5+8) rec_header的最后两字节指向 sdi数据位置import struct,json,zlibPAGE_NEW_INFIMUM = 99PAGE_SIZE = 16384class sdi(object

    1.2K41编辑于 2023-04-25
  • 来自专栏FPGA开源工作室

    基于FPGA的两种SDI视频方案(GTX+外接芯片)

    按速率可分为标准清新度SD-SDI、高清标准HD-SDI和3G-SDI,其对应速率分别是270Mb/s、1.485Gb/s和2.97Gb/s。 从理论上讲,SDI的传输距离可以达到100m。 (4) 成本更低 SDI接口平均每米价格约为4元,相较于HDMI接口的平均每米价格约为10元,SDI接口成本更低。 2 案例功能 本案例为通过GS2971A、GS2972芯片引出SDI视频输入、输出案例。通过GTX高速串行总线引出的SDI视频输入、输出案例即将发布,敬请期待。 通过SDI数据线将TL2971A/2972F模块的SDI IN接口连接至HDMI转SDI模块的OUTPUT接口。 通过SDI数据线将TL2971A/2972F模块的SDI OUT接口连接至SDI转HDMI模块(厂家:玩视,型号:3G SDI TO HDMI Audio)的INPUT接口,再通过HDMI数据线将一台HDMI

    7.9K11发布于 2021-02-24
  • 来自专栏kali blog

    Mysql从删库到跑路 基于mysql8 MYD MYI SDI数据库恢复

    文件 说明 XXX.sdi 表结构文件 XXX.MYD 数据文件 XXX.MYI 索引文件 我们可以利用这三个文件完成对数据库的恢复 image.png 删库恢复测试 1.我们首先创建一个数据库bbskali 前后对比,我们发现只有.sdi文件名不一样。先把旧表数据.MYD .MYI替换新表.MYD .MYI,然后将新表的.sdi给旧表重命名后替换! 2.复制原站的date目录,将里面MYD和MYI全部替换,然后去找对应的.sdi文件,将其重命名后在替换。 2.不能恢复dz插件的数据,因为没有插件的.sdi 的文件信息 3.对于dz我们可以只恢复用户表和帖子表即可!其他的我们可在后台再次设置!以下是dz部分表的信息!

    3.5K30编辑于 2021-12-19
  • 来自专栏大大刺猬

    mysql.ibd 文件解析 (sdi page) (非debug模式下查看隐藏系统表)

    上来就是有难度的.SDI PAGE既然一个表空间能存储多张表, 那么sdi信息就会记录多张表的信息, 我们之前解析inode的时候, 发现里面第一对segment就是sdi page, 也就是说sdi 再加上解析sdi的时候也有trx,undoptr之类的信息. 所以sdi page也是数据行, 那么一张表1行就可以存储多张表的元数据信息了.啊,我真是个小天才FIL_PAGE_INDEX = 17855, FIL_PAGE_SDI = 17853 号比较接近, (16384)sdi_segment = data[50:50+192*2]sdi_leaf_pageno = struct.unpack('>L',sdi_segment[192:][64:68])[ (16384)sdi_segment = data[50:50+192*2]sdi_leaf_pageno = struct.unpack('>L',sdi_segment[192:][64:68])[

    1.6K30编辑于 2024-09-18
  • 传特斯拉与三星SDI合作,推动储能电池供应链“去中国化”

    11月5日消息,近日有美国媒体报道称,韩国电池大厂三星SDI公司正在与特斯拉就储能电池供应进行洽谈,若该交易达成,则标志着特斯拉在供应链上“去中国化”的又一个大动作。 报道称,三星SDI与特斯拉洽谈的储能电池合作的价值可能超过3万亿韩元(约合人民币148.50亿元),将在三星SDI与美国Stellantis合资的印第安纳州Kokomo工厂生产,主要用于特斯拉Megapack 除了与三星SDI的潜在合作之外,近几个月来,特斯拉已经先后与三星电子和LG新能源签署了芯片和电池供应协议。

    13010编辑于 2026-03-20
  • 来自专栏数据库干货铺

    MySQL OCP试题解析(9)

    SDI)的副本。 例如,InnoDB 表的 SDI 包含表的定义(列、索引、约束等),并通过 ibd2sdi 工具可解析为 JSON 格式输出。 SDI 相关知识总结 2.1 SDI 的作用与结构 冗余元数据:SDI 提供元数据冗余,即使数据字典损坏,仍可从表空间文件中提取表结构信息。 JSON 格式:SDI 包含表名、列定义、索引、字符集等元数据字段,通过 ibd2sdi 工具解析后生成可读的 JSON 文件。 2.2 SDI 的更新与兼容性 更新时机:SDI 在 DDL 操作(如 ALTER TABLE)或 CHECK TABLE FOR UPGRADE 时更新,但 MySQL 版本升级不会自动更新 SDI

    55000编辑于 2025-05-25
  • 来自专栏FPGA/ARM/DSP技术专栏

    12G-SDI高清视频开发案例,让4K视频采集更便捷!基于Xilinx MPSoC高性能平台

    介绍 SDI(Serial Digital Interface,串行数字接口)是一种用于传输未经压缩的数字视频信号的标准,主要应用于远程监控、工业检测等领域。 12G-SDISDI接口的其中一种,支持高达12Gbps的数据传输速率,专为支持4K超高清视频而设计。 12G-SDI优势 支持单链路传输:12G-SDI能够在单根电缆上传输,简化安装与维护,减少布线复杂性。 支持长距离传输:12G-SDI支持长距离传输,能够实现远距离的高质量视频信号传输。 支持4K高清视频:12G-SDI支持4K分辨率,帧率高达60fps,能够流畅地播放动态视频。 案例说明 该案例通过12G-SDI IN接口采集4K@60fps视频,并通过12G-SDI OUT接口将采集到的视频进行输出。

    43610编辑于 2024-09-27
  • 来自专栏FPGA/ARM/DSP技术专栏

    【高清视频方案分享】12G-SDI与CameraLink输入输出,基于RK3588J+FPGA工业平台

    12G-SDI介绍SDI(Serial Digital Interface,串行数字接口)是一种用于传输未经压缩的数字视频信号的标准,主要应用于远程监控、工业检测等领域。 12G-SDISDI接口的其中一种,支持高达12Gbps的数据传输速率,专为支持4K超高清视频而设计。 12G-SDI优势支持单链路传输:12G-SDI能够在单根电缆上传输,简化安装与维护,减少布线复杂性。支持长距离传输:12G-SDI支持长距离传输,能够实现远距离的高质量视频信号传输。 gtx_sdi_cap_dis案例案例说明TL3588F-EVM评估板通过12G-SDI IN接口进行1080P@60fps的视频采集,并通过评估板的12G-SDI OUT接口将采集到的视频进行输出。 案例演示将PC机HDMI OUT接口、HDMI转SDI模块、HDMI转SDI模块、HDMI显示屏、评估板等对应连接,硬件连接如下图所示。

    1.1K20编辑于 2024-12-23
  • 来自专栏韦东山嵌入式

    2017.5.19论坛问题精选以及解决方法

    s3c2440-sdi s3c2440-sdi: running at 196kHz (requested: 195kHz). s3c2440-sdi s3c2440-sdi: running at 196kHz (requested: 195kHz). s3c2440-sdi s3c2440-sdi: running at 196kHz (requested: 195kHz). s3c2440-sdi s3c2440-sdi: running at 196kHz (requested: 195kHz). s3c2440-sdi s3c2440-sdi: running at 196kHz (requested: 195kHz).

    85630发布于 2020-09-30
  • 来自专栏MySQL修行 | 老叶茶馆

    MySQL 8.0数据字典有什么变化

    为了实现DDL的原子性,InnoDB直接把元数据存储在表空间文件中,需要的话,可是使用 ibd2sdi 工具从中读取,例如: $ ibd2sdi test/t1.sdi ["ibd2sdi" , { 在 .sdi 文件中,采用JSON格式存储元数据信息。 对于MyISAM表,不能再像以前那样,直接把 .frm\.MYD\.MYI 文件拷贝到目标数据库后就能直接用。 /db2 # 拷贝 .sdi 文件到 secure_file_priv 指定的路径下 $ cp -p . /db1/t1_1274.sdi $secure_file_priv/ # 修改 .sdi 文件中的 schema 值,将 db1 改成 db2 # MySQL文档中没提到这点,但实测过程中发现需要加这步操作 $ vim $secure_file_priv/t1_1274.sdi ...

    1.2K20编辑于 2022-12-02
  • 来自专栏GreatSQL出品技术文章

    MySQL 8.0数据字典有什么变化

    为了实现DDL的原子性,InnoDB直接把元数据存储在表空间文件中,需要的话,可是使用 ibd2sdi 工具从中读取,例如: $ ibd2sdi test/t1.sdi ["ibd2sdi" , { 在 .sdi 文件中,采用JSON格式存储元数据信息。 对于MyISAM表,不能再像以前那样,直接把 .frm\.MYD\.MYI 文件拷贝到目标数据库后就能直接用。 /db2 # 拷贝 .sdi 文件到 secure_file_priv 指定的路径下 $ cp -p . /db1/t1_1274.sdi $secure_file_priv/ # 修改 .sdi 文件中的 schema 值,将 db1 改成 db2 # MySQL文档中没提到这点,但实测过程中发现需要加这步操作 $ vim $secure_file_priv/t1_1274.sdi ...

    42021编辑于 2023-08-10
  • 来自专栏全栈程序员必看

    如何有效解决高清视频传输中出现的闪屏、黑屏、蓝屏问题?

    我们都知道一般高清视频是使用SDI光端机来实现光纤化传输,那么就会涉及到SDI光端机把电信号转换成光信号的时候所有用的光模块。 一般SDI光端机提供的是SFP光口,很多人人为既然是SFP光口,那么随便用普通的SFP光模块来进行光电转换就行。 正确的做法是采用专用的SDI SFP光模块,SDI SFP光模块也被称为数字视频光模块或SDI(串行数字接口)光模块,这种光模块主要作用是用来支持SDI设备的SDI视频病理信号。 生产的SDI SFP光模块根据速率可以分为3G SDI SFP光模块、6G SDI SFP光模块和12G SDI SFP光模块。 确保采用了正确的光模块之后,接下来就是检查光模块的收发光是否正常,当光模块收光较弱时,也可能会出现传输画面不稳定的情况,那就需要重新优化光纤线路,或者是更换传输距离更远能容纳更大损耗的SDI SFP光模块

    1.9K30编辑于 2022-11-09
  • 来自专栏大大刺猬

    [MYSQL] 修改字段长度的时候不能使用instant算法? 那就定制一个?

    实现首先是修改ibd中的sdi信息. 之前已经多次讲过这部分信息, 就不再赘述其结构了. 修改思路大概如下:解析sdi中的元数据信息(5.7升级的sdino位置是不固定的, 需要注意, 但我们都TM忽略掉)修改字段长度. = json.loads(unzbdata.decode())columns = []for col in sdi['dd_object']['columns']:if col['name'] == ['dd_object']['index']:#passnew_sdi = sdinew_sdi['dd_object']['columns'] = columnsnew_sdi = json.dumps (new_sdi).encode()new_dunzip_len = len(new_sdi)new_sdi = zlib.compress(new_sdi)new_dzip_len = len(new_sdi

    27320编辑于 2025-07-25
领券