特征存储
DuckDB在关系型数据库中,INSERT语句是将数据加载到数据库的常用方法。使用INSERT语句时,数据是按行逐个插入的。虽然这种方式直观易懂,但在解析和处理每一个单独的INSERT语句时会涉及到较大的开销。这导致当进行大量数据的批量插入时,逐行插入变得非常低效。
最佳实践避免频繁的逐行插入:作为一般规则,当插入多于几行的数据时,应避免使用大量的逐行INSERT语句(即不要在循环中使用INSERT语句)。在进行大批量数据插入时,应尽量增加每次语句插入的数据量。避免自动提交模式:如果你必须在循环中使用INSERT语句来加载数据,请避免在自动提交模式下执行这些语句。在自动提交模式下,每个单独的语句都会被包裹在一个独立的事务中,意味着每次提交后数据库都需要将更改同步到磁盘以确保数据不丢失。在批量加载数据时,这种同步通常是不必要的,并且会显著减慢程序的速度。小贴士使用事务来包裹循环中的INSERT语句:如果你必须在循环中使用INSERT语句加载数据,可以将这些语句包裹在BEGIN TRANSACTION和COMMIT语句之间,这样可以将多次插入操作合并到一个事务中,减少磁盘同步的频率,从而提 ...
Clickhouse使用和学习
Clickhouse
Clickhouse阿里云、思科、滴滴、IBM、LangChain、索尼、Cloudflare、eBay、DeepL、百度都用它
Clickhouse 有中文文档,但是不全;读完全部的Docs和SQL Reference基本上用起来没有任何问题了,而且它还有自带的AI
Clickhouse存储数据所支持的数据类型
Integer types: signed and unsigned integers (UInt8, UInt16, UInt32, UInt64, UInt128, UInt256, Int8, Int16, Int32, Int64, Int128, Int256)
Floating-point numbers: floats(Float32 and Float64) and Decimal values
Boolean: ClickHouse has a Boolean type
Strings: String and FixedString
Dates: use Date and Date32 for days, and DateTime an ...
Spark
[[Spark 的基本数据模型]]
Application由多个Job组成,Job由多个Stage组成,Stage由多个Task组成。Stage是作业调度的基本单位。
RDD:是弹性分布式数据集(Resilient Distributed Dataset)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。DAG:反映RDD之间的依赖关系。Driver Program:控制程序,负责为Application构建DAG图。Cluster Manager:集群资源管理中心,负责分配计算资源。Worker Node:工作节点,负责完成具体计算。Executor:是运行在工作节点(Worker Node)上的一个进程,负责运行Task,并为应用程序存储数据。Application:用户编写的Spark应用程序,一个Application包含多个Job。Job:作业,一个Job包含多个RDD及作用于相应RDD上的各种操作。Stage:阶段,是作业的基本调度单位,一个作业会分为多组任务,每组任务被称为“阶段”。Task:任务,运行在Executor上的工作单元,是Executor ...
miniforge
什么是Mambaforge?和miniforge和mamba的关系Mambaforge使用mamba作为其包管理器,mamba是conda的一个替代品,可以从conda-forge通道安装包。
Miniforge是一个社区驱动的miniconda替代品,它与Miniconda相比,提供了更多的编译器和开发工具,适用于更复杂的环境和依赖关系。自2023年9月起,Miniforge的功能与Mambaforge完全一致,两者的主要区别在于安装器名称和默认安装路径。
Mamba是一个高效的包管理工具,它通过C++实现核心部分,以提高执行效率,并且可以与conda完美兼容,只需将conda命令中的conda替换为mamba即可。Mambaforge预配置了流行的conda-forge通道,但用户也可以修改配置以使用其他任何通道。
总结来说,Mambaforge是一个基于mamba的环境管理工具,而Miniforge则是一个提供额外编译器和开发工具的环境管理工具,两者在功能上已经非常接近,主要差异在于安装过程中的细节。
miniforge, I’m comingconda-forge/m ...
python性能优化
pypy和cpython的区别和应用是什么pypy和CPython是两种不同的Python解释器,它们在性能、应用场景和兼容性方面有所不同。
性能差异:CPython执行速度通常较慢,PyPy的执行速度显著快于CPython。
应用场景:
PyPy特别适合纯Python应用程序,因为它不支持C扩展。这使得PyPy在执行纯Python代码时表现出色,PyPy无法使用例如Numpy,Scipy等重要的第三方库。
CPython由于其广泛的C扩展支持,更适合于需要高性能计算的应用,如科学计算和数据分析。
兼容性: 例如,PyPy不支持某些CPython特有的功能或语法。
其他考虑因素:
PyPy虽然在性能上有所提升,但其启动速度较慢,这可能影响到一些对启动速度敏感的应用。
PyPy还支持stackless模式,这为高并发应用提供了额外的优势。
总结来说,选择PyPy还是CPython取决于具体的应用需求。如果应用主要是纯Python代码,并且对执行速度有较高要求,PyPy是一个很好的选择。而对于那些依赖于C扩展的性能密集型应用,CPython则是更合适的选择。将Pyth ...
符号回归之费曼数据集/AI-费曼算法
符号回归之费曼数据集/AI-费曼算法费曼数据集是从费曼物理教材上找到的数百个方程采样生成的数据集,AI-费曼算法是一种结合物理数据属性和深度学习来进行规律重发现的方法。该数据集论文中还发现了一种新的损失/目标函数,优于符号回归的遗传算法
数据集 :Rethinking Symbolic Regression Datasets and Benchmarks for Scientific Discovery(2022)算法:AI 费曼 (arxiv.org)
费曼数据集组成
Feynman_with_units.tar.gz (4.1 GB)
bonus_with_unit0s.tar.gz (1.1 GB)
Feynman_without_units.tar.gz (1.7 GB)
bonus_without_units.tar.gz (0.6 GB)
FeynmanEquations.csv
FeynmanEquationsDimensionless.csv
BonusEquations.csv
BonusEquationsDimensionless.csv
uni ...
nvm
NVM是什么?nvm是node.js版本管理工具
NVM怎么安装?参考网页CSDN
卸载node、npm,清除残留
去github网站下载安装nvm
检查安装 1nvm version
添加镜像源
安装node1234567nvm list available# 安装某个版本nvm install xxx# 使用某个版本nvm use xxx# 查看可用node版本nvm list
非常简单,OK了
nginx
Nginx有什么用?
用作Web服务器
负载均衡(DDos防御)
API网关
反向代理
web应用防火墙
Web缓存:Nginx可以对不同的文件做缓存处理,通过缓存,Nginx可以提高Web服务器的性能,减轻网络拥堵,减小数据传输延时,提高用户访问速度。支持fastcgi_cache,主要用于对fastcgi的动态程序进行缓存
虚拟主机:Nginx可以在同一台服务器上创建多个虚拟主机,每个虚拟主机都可以独立配置和运行,互不影响。这有助于节省服务器资源,提高服务器的利用率。
Nginx怎么用?1234567# 查看nginx是否成功安装,以及版本nginx -v# -t检查nginx配置文件,主要是nginx.conf的格式是否正确;reload重载配置nginx -t &&nginx --reload>nginx: the configuration file /etc/nginx/nginx.conf syntax is ok >nginx: configuration file /etc/nginx/nginx.conf test is succes ...
网络流量分析工具
Traffic analyze tools网络流量分析工具这个仓库用于测评、使用和modify现有的流量分析工具,尤其是pcap等文件的静态分析、DPI,而非关注整个工具链条和实时轻量分析
pywhat:可用于pcap分析和字段分析pywhat能够通过格式正则化发现并识别各类文本和文件中的IP地址、URI、邮箱地址、电话号码、信用卡号、加密货币地址、经纬度等关键信息,能用于分析pcap里有什么和字符串是什么,即内容信息提取工具,支持命令行和python API。bee-san/pyWhat: 🐸 Identify anything. pyWhat easily lets you identify emails, IP addresses, and more. Feed it a .pcap file or some text and it’ll tell you what it is! 🧙♀️ (github.com)
123pip3 install pywhat && pywhat --help# 高速版本$ pip3 install pywhat[o ...
KAN:科尔莫戈罗夫-阿诺德网络——可训练激活函数模型解读
Kolmogorv-Arnold网络是MLP的promising替代方案。
KAN的激活函数在边上,而与之相对的是,MLP激活函数在节点上。
可训练的激活函数这一简单的变化使KAN在准确性和可解释性方面都优于MLP。
链接arxiv论文KAN 官方python库文档有一说一,这个论文和文档写得非常有反映研究思路,比较渐进性和基础。
论文阅读before readingI’m concerned about its performance, training methods and all kinds of tradeoff.
reading本文提出了一种名为Kolmogorov-Arnold Networks(KANs)的新神经网络架构,它受到Kolmogorov-Arnold表示定理的启发,是多层感知机(MLPs)有前景的替代方案。
要点
KANs与MLPs的区别:传统的MLPs在节点(或称为“神经元”)上使用固定的激活函数。而KANs在边上(或称为“权重”)使用可学习的激活函数。
KANs的特点:KANs中完全没有线性权重。每个权重参数都被一个参数化为样条的单变量函数所替代。 ...