《pgconf-china-2024-馮若航(最新版).pdf》由會員分享,可在線閱讀,更多相關《pgconf-china-2024-馮若航(最新版).pdf(59頁珍藏版)》請在三個皮匠報告上搜索。
1、PIGSTYand duckdb_fdwAutoTuneAdminSOPLOCAL REPOYUM/APTIaaS ProvisioningLocal SandboxPlaybook as IaC ControllerWeb PortalPG BouncerPoolingService Acces&Load BalancingDNSMASQName ResolvingNode L2 VIP BindingVIPManagerPGSQL Primary L2 VIPMonnitoringRetemo RDSMonnitoringOther DBMSVisualizationMetrics TSD
2、BpgBackRestPATRONIDCS for HAConsensusbackup repoOPTIONALHAPITRCAself-signedACLPGVECTORPostgresMLHYDRAzhparserPostgresInfrastructuresGraphicsServiceToolboxComposabilityYoursAvailbilityMaintainability Observability ExtensibilityReliability 馮若航/Vonng 開源 RDS PG-Pigsty 創始人 PostgreSQL 中文社區 開源技術委員數據庫世界的未來E
3、xtensionServicePostgreSQLPigstyPigsty Founder PostgreSQL中文社區技術委員會技術委員 曾任職于 Apple,TanTan,Alibaba 譯注有 DDIA,PG Internal架構師,內部創業者PostgreSQL DBA架構師,PG 專家工業互聯網馮若航Apple互聯網應用探探互聯網平臺阿里基礎軟件Pigsty創始人,全棧專家Github:Vonng StarRank:490PostgreSQL 專家,開源貢獻者 全棧專家,架構師,DBA,KOL2015-20172017-2018 2020-202220192022+https:/ M
4、e公眾號:法加馮作者 數據庫司機/云計算泥流PGCon.Dev 2024 Vancouver OLAP 挑戰者HYDRADuckDB FDWpg-strompg_tierS3 FDWOLAP1000 x未調優PG47x調優PG42xHydra10 xParadeDB3xDuckDB-create extensionCREATE EXTENSION duckdb_fdw;-create duckdb_fdw serverCREATE SERVER duckdb_server FOREIGN DATA WRAPPER duckdb_fdw OPTIONS(database/tmp/duck.db)
5、;-create user mapping OPTIONAL-GRANT USAGE ON FOREIGN SERVER duckdb_server TO PUBLIC;SELECT duckdb_fdw_version();-You can execute duckdb command with duckdb_execute,for example,to create a table inside duckdb:-create a table in duckdbSELECT duckdb_execute(duckdb_server,CREATE TABLE t1(a integer,b va
6、rchar););-create duckdb foreign table mapping that duckdb tableCREATE FOREIGN TABLE t1(a integer,b text)SERVER duckdb_server OPTIONS(table t1);-write some data and read it backINSERT INTO t1 SELECT i AS a,i:text AS b FROM generate_series(1,10)i;SELECT*FROM t1;PG 有 DuckDB FDW!OSS Rank:PostgreSQL Ecos
7、ystemPostgreSQL 態開源項36名 Pigsty:馮若航北京 51名 duckdb_fdw:alitrack杭州 75名 zhparser:amutu深圳 118名 pg_roaringbitmap:陳華軍蘇寧摩爾定律 依然生效https:/ vCPU 10TB Mem 2PB Flash軟件給力 硬件更給力!吞噬世界的擴展沒有什么數據需求是 PostgreSQL+擴展 解決不了的 Simon Riggs(如果有,那就再寫一個)數據庫領域有許多“細分領域”:時序數據庫,地理空間數據庫,檔數據庫,搜索數據庫,圖數據庫,向量數據庫,消息隊列,對象數據庫。PostgreSQL 在任何個領
8、域都不會缺席。擴展三巨頭地理空間事實標準:PostGIS時序數倉+流處理:Timescale水平分表 +分布式:Citus存儲過程語言S3想要使用 SQL 接口訪問外部數據源?其他數據庫?對象存儲文件?甚至是 API 服務?圖數據庫?PGQpgmqFeaturedjsonschemapg_ivmHYPOPGjsqueryHLLRUMpgttpgsql_gzippgsql_httppg_netpg_tdepg_hint_planOpenCypher via Apache AGELakeHouseHYDRAOLAPDuckDB FDWParquet S3 FDWpg-strompg_tierpg_
9、lakehousePGVECTORPGVECTORPostgresMLpgvector scalepg_vectorizepg_tiktokenAI ML RAGpg_similarity專用向量數據庫 變成了一個笑話賽馬,1年150 x性能提升float向量,半精度向量,bit向量,稀疏向量 L1距離,L2距離,內積距離,漢明距離,Jaccard距離 向量、標量計算函數與運算符;支持 IVFFLAT,HNSW 兩種專用向量索引算法(擴展的擴展 pgvectorscale 提供 DiskANN 索引);支持并行索引構建,向量量化處理,稀疏向量處理 子向量索引,混合檢索,SIMD 指令加速。將
10、PGVECTOR 提入 PGDG 官方倉庫PostgresMLpg_searchSELECT*FROM my_tableWHERE my_table description:keyboard2 OR electronics:fuzzy_fields=description&distance=2全文檢索Tantivy向量檢索pgvectorSQL檢索PostgreSQL二元組索引:pg_bigm,三元組索引:pg_trgm中文分詞:zhparser,scws,全文檢索ElasticSearch AlternativePostgreSQL vs MongoDBhttps:/ 對數據庫很重要?帶有可
11、擴展類型系統的關系模型 已經主宰數據庫世界的所有角落DBMS ExtensibilityPGVECTORPGVECTORPostgresMLpgvector scalepg_vectorizepg_tiktokenAI ML RAGpg_similarity專用向量數據庫 變成了一個笑話賽馬,1年150 x性能提升float向量,半精度向量,bit向量,稀疏向量 L1距離,L2距離,內積距離,漢明距離,Jaccard距離 向量、標量計算函數與運算符;支持 IVFFLAT,HNSW 兩種專用向量索引算法(擴展的擴展 pgvectorscale 提供 DiskANN 索引);支持并行索引構建,向量
12、量化處理,稀疏向量處理 子向量索引,混合檢索,SIMD 指令加速。PigstyPigsty洞察Vectors and vector search are a data type and query processing approach,not a foundation for a new way of processing data.Using a specialty vector database(SVDB)will lead to the usual problems we see(and solve)again and again with our customers who use
13、multiple specialty systems:redundant data,excessive data movement,lack of agreement on data values among distributed components,extra labor expense for specialized skills,extra licensing costs,limited query language power,programmability and extensibility,limited tool integration,and poor data integ
14、rity and availability compared with a true DBMSWhy your vector database Should not be a Vector Database向量與向量搜索是種新的數據類型和查詢處理法,不是種全新的基礎性數據處理式。使專的向量數據庫(SVDB)將再次重復歷史,那些使多種專數據庫客戶會不斷遇到這類典型問題:數據冗余、量不必要的數據搬運作、分布式組件之間的缺乏數據致性、額外的專業技能勞動成本、額外的軟件許可成本、有限的查詢語能、可編程性和可擴展性、有限的具集成、以及與真正數據庫相更差的數據完整性和可性。個合格的向量數據庫,先得是個合格
15、的數據庫,從零開始做到這點并不容易。起使種全新的獨數據庫品類,為現有數據庫加裝向量搜索的能顯然是個更為務實,簡單,經濟的選擇。個合格的向量數據庫 先得是個合格的數據庫 從零開始做到這點并不容易 錯誤的路線將耗費百倍做功數據庫領域拼的是整體實,專向量數據庫 正如 向對象,地理空間,時序,分布式 這些歷史上的數據庫熱點樣:極容易被現有的,加裝了向量數據庫功能的頭部關系數據庫降維打擊!Pigsty可復用性PIGSTYand duckdb_fdwAutoTuneAdminSOPLOCAL REPOYUM/APTIaaS ProvisioningLocal SandboxPlaybook as IaC
16、ControllerWeb PortalPG BouncerPoolingService Acces&Load BalancingDNSMASQName ResolvingNode L2 VIP BindingVIPManagerPGSQL Primary L2 VIPMonnitoringRetemo RDSMonnitoringOther DBMSVisualizationMetrics TSDBpgBackRestPATRONIDCS for HAConsensusbackup repoOPTIONALHAPITRCAself-signedACLPGVECTORPostgresMLHYD
17、RAzhparserPostgresInfrastructuresGraphicsServiceToolboxComposabilityYoursAvailbilityMaintainability Observability ExtensibilityReliability 不要再重復造輪子了!重新發明:事務 ACID,故障恢復,備份PITR,高可用,訪問控制,監控,部署,三方生態工具,客戶端驅動沒有意義!Pigsty可組合性pgvector+pg_search =混合檢索數據庫timescale+postgis =時空數據庫postgis+citus =分布式地理數據庫citus+pgve
18、ctor =分布式向量數據庫#stackgis-stack:postgis34,pointcloud,h3-pg,pgroutingrag-stack:pgvector,pgvectorscale,pg_vectorize,pg_tiktoken,pgml,pg_search,pg_bigm,zhparserfdw-stack:multicorn2,wrappers,mongo_fdw,mysql_fdw,ogr_fdw,sqlite_fdw,tds_fdw,hdfs_fdw,pgbouncer_fdw,orafceetl-stack:pglogical,wal2json,wal2mongo,
19、postgres-decoderbufs,pg_fact_loader,pg_bulkload,pg_comparator,pgloader,pgcopydbolap-stack:timescaledb-2-postgresql-$v*,postgis34,hydra,pg_fkpart,pg_partman,duckdb_fdw,parquet_s3_fdw,pg_lakehouse,pg_tier,pg_cron,duckdbsupa-stack:pgvector,pg_cron,pgsodium,pg_graphql,pg_jsonschema,wrappers,vault,pgjwt,
20、pgsql_http,pg_netstat-stack:pg_profile,pg_show_plans,pg_stat_kcache,pg_stat_monitor,pg_qualstats,pg_store_plans,pg_track_settings,pg_wait_samplingjson-stack:plv8,pg_jsonschema,pgjwt,jsquery,mongo_fdw,pg_graphql,ferretdbtest-stack:pldebugger,plprofiler,postgresql_faker1+1 2協同效應Pigsty獨立演進誰在卡數據庫的脖子?守正出
21、奇擴展是獨立演進的,無需主干協調!擴展是按需使用的的,不影響主干穩定性!PostgreSQL 正在吞噬整個 數據庫世界!https:/pigsty.io/zh/blog/pg/pg-eat-db-world/PostgreSQL:世界上最流行、最受喜愛的數據庫全球中國美國俄羅斯流行度StackOverflow 2023 Developer Survey變化趨勢2017-2023PostgreSQL 過去13年中數據庫領域的最大贏家https:/demo.pigsty.cc/d/db-engine/db-engine-trending?orgId=1熱度關系型主宰著 數據庫世界NoSQL is
22、DyingWhere is NewSQL關系型數據庫 基本格局三國演義PostgreSQL vs MySQLRedshift,RDS for PostgreSQL,Aurora for PostgreSQL,babelfishCosmosDB for PostgreSQL,HyperscaleDBAlloyDBPolarDB for PostgreSQL,RDS for PostgreSQL,AnalyticDBGaussDB,openGaussTBase,TDSQL for PostgreSQLPostgreSQLPostgreSQL,EnterpriseDBGreenplum,DeepGr
23、eenCockroachDB商業數據庫被開源內核干翻了!MySQL 在功能,性能,正確性,更新上一敗涂地PostgreSQL 將成為數據庫領域的 Linux 內核!But WHY?服務真正的游戲,已經不再是內核!誰都在做操作系統發行版 哪個在魔改 Linux 內核?Linux“無處不在”Linux“無關緊要”誰會成為 Postgres 世界的 Debian?只有那些聚焦于“擴展”和“服務”的數據庫發行版才能成功!服務!一種能力抽象 通過 PGURL 對外暴露什么?你交付的是 RPM 包?Pigstyhttps:/pigsty.io https:/pigsty.io/zhPigstyAI 基礎設
24、施&向量數據庫&RAGPigsty 還提供了 AI 基礎設施支持 PostgresML 與 PGVECTOR/PGVECTORIZE/PGVACTORSCALE 等 AI 擴展 您可以用 SQL 完成 AI 大模型與經典機器學習算法訓練、預測、存儲的完整閉環!運行 Dify,LangChain 等 AI 應用應用場景經典 PostgreSQL RDS 服務在生產環境中運行高可用的 PostgreSQL 集群,并充分應用 150+擴展的超能力 PostGIS 地理空間,Timescale 時序流事,Citus 列存分布式,PGVector 向量低代碼應用開發與數據可視化利用 Supabase,G
25、raphQL,PostgREST,Kong 等工具提供的能力快速開發應用原型 或使用 Postgres 與 Jupyter 進行數據分析,并使用 Grafana 與 Echarts進行數據可視化支持業務軟件:Dify,LangChain,Odoo,.Pigsty 提供了常用軟件的 Docker 模板,可以使用 Pigsty 管理的 PostgreSQL 實例存儲數據。例如 Gitea,Wiki.js,NocoDB,Gitlab,Harbor,Odoo,Mastodon,Dicourse,Jira,Confluence,等等.開箱即用!永遠不要低估“開箱即用”的使用體驗Pigsty這個“箱子”里
26、有什么?擴展齊全255 個擴展插件其中 34 個由 Pigsty 自己維護全部開箱即用!pg_extensions:#extensions to be installed on this cluster-timescaledb postgis pgrouting pointcloud h3 ip4r#geoip#GIS&Timeseries#-pgvector pgvectorscale vectorize pg_tiktoken pgml pg_search pg_bigm zhparser#Vector Search RAG#-hydra duckdb_fdw parquet_s3_fdw
27、 pg_lakehouse pg_tier pg_fkpart pg_partman#citus plproxy pg_strom#OLAP&Sharding#-age pg_graphql pg_jsonschema jsquery pg_hint_plan hypopg pg_ivm pgmq pgq pgtt temporal_tables emaj periods pg_statement_rollback hll rum#table_version#Featured&AM#-pgjwt pg_idkit pg_uuidv7 pg_later pg_background gzip ht
28、tp pg_net pgsql_tweaks count_distinct extra_window_functions tdigest pg_extra_time topn sequential_uuids#mysqlcompat#Function&Test#-wrappers mongo_fdw multicorn2 mysql_fdw ogr_fdw sqlite_fdw tds_fdw hdfs_fdw pgbouncer_fdw orafce pgmemcache pg_dbms_lock pg_dbms_metadata pg_dbms_job firebird_fdw#oracl
29、e_fdw db2_fdw#FDW&Compatible#-prefix timestamp9 semver pgmp uint roaringbitmap md5hash pg_tle plv8 pllua luapgsql plprql pldebugger plpgsql_check plprofiler plsh faker pgtap#pljava plr dbt2#Type,PL,Test#-pg_repack pg_cron pg_squeeze pg_dirtyread pgdd pgfincore pgl_ddl_deploy pg_prioritize pg_readonl
30、y pgagent pg_checksums safeupdate ddlx pg_permissions pg_auto_failover pg_catcheck#Administration#-pg_profile pg_show_plans pg_stat_kcache pg_stat_monitor pg_qualstats pg_statviz pg_store_plans pg_top pg_track_settings pg_wait_sampling system_stats bgw_replstatus powa pgmeminfo#Monitor&Stat#-passwor
31、dcheck_cracklib pgsodium vault anon pg_tde pgsmcrypto pgaudit pgauditlogtofile pg_auth_mon credcheck pgcryptokey pg_jobmon logerrors login_hook set_user filedump#Security&Audit#-pglogical decoderbufs wal2json wal2mongo pg_failover_slots pg_fact_loader pg_bulkload pg_comparator pgimportdoc pgexportdo
32、c pgcopydb pgloader#repmgr pgpool pgexporter_ext#ETL,CDC,REPL#-gis-stack rag-stack fdw-stack etl-stack olap-stack supa-stack stat-stack json-stack test-stack#Predefined Stacks#PigstyPigsty 擴展列表 AWS RDS 擴展列表:阿里云 RDS 擴展列表RDS 對重要 PG 擴展的支持情況 2024-02-28 對比基于最新的 PostgreSQL 16 主干版本進行好用功能:內核/正確性/ACID安全:備份 P
33、ITR/ACL/SSL/主可控可靠:可 HA/監控/告警/服務兜底洞察:可觀測性/數字化/可視化掌控:可控制性/IaC/可擴展性ROI:成本/性能/彈性/復雜度/可維護性智能:動駕駛/DBA 模型基礎需求(合格)進階需求(體)級需求(品味)超越需求(超越)數據庫需求字塔:公有云 RDS理安全歸屬尊重認知審美超越功能:內核/正確性/ACID安全:備份 PITR/ACL/SSL/主可控可靠:可 HA/監控/告警/服務兜底洞察:可觀測性/數字化/可視化掌控:可控制性/IaC/可擴展性ROI:成本/性能/彈性/復雜度/可維護性智能:動駕駛/DBA 模型基礎需求(合格)進階需求(體)級需求(品味)超越需
34、求(超越)數據庫需求字塔:Pigsty RDS理安全歸屬尊重認知審美超越功能:內核/正確性/ACID安全:備份 PITR/ACL/SSL/主可控可靠:可 HA/監控/告警/服務兜底洞察:可觀測性/數字化/可視化掌控:可控制性/IaC/可擴展性ROI:成本/性能/彈性/復雜度/可維護性智能:動駕駛/DBA 模型基礎需求(合格)進階需求(體)級需求(品味)超越需求(超越)數據庫需求字塔:平均平理安全歸屬尊重認知審美超越功能:內核/正確性/ACID安全:備份 PITR/ACL/SSL/主可控可靠:可 HA/監控/告警/服務兜底洞察:可觀測性/數字化/可視化掌控:可控制性/IaC/可擴展性ROI:成本
35、/性能/彈性/復雜度/可維護性智能:動駕駛/DBA 模型基礎需求(合格)進階需求(體)級需求(品味)超越需求(超越)數據庫需求字塔理安全歸屬尊重認知審美超越解決 RDS 解決不了的問題開源免費,自主可控用 云服務器 的牛,耕 云數據庫 的田!立省一半成本!享受云廠商IaaS層的簡單便利,又節省掉了RDS的超額剝削!用戶若愿意自建,可節省 高達80%的綜合持有成本!使用本地 NVMe 硬盤IOPS性能可翻n倍,數據完全自主可控!不用擔心自己的數據被他人掌控!賦能用戶,一個DBA管理幾百套生產級數據庫!初級研發立即達到專業DBA 廉價七成正確水準成本核算參考值(1核算 1價格)部署式單價IDC建機
36、房(獨占物理機 A1:64C384G)19IDC建機房(獨占物理機 B1:40C64G)26IDC建機房(獨占物理機 C2:8C16G)38IDC建機房(容器,超賣200%)17IDC建機房(容器,超賣500%)7Ucloud 彈性虛擬機(8C16G,有超賣)25阿云 彈性服務器 2x內存(獨占超賣)107阿云 彈性服務器 4x內存(獨占超賣)138阿云 彈性服務器 8x內存(獨占超賣)180阿云 云數據庫 2x內存(獨占超賣)260阿云 云數據庫 4x內存(獨占超賣)320阿云 云數據庫 8x內存(獨占超賣)410ORACLE數據庫授權10000省錢Pigsty發展進度PostgreSQL Ecosystem Rank:Page2全球 PG 開源生態項目 No.35過去12個月中 全球用戶 7.2 萬登頂 Hacker News Best合作伙伴(中國人主導的PG生態開源項目中排名第一)GitHub Star:3K 加速增長中Pigsty讓天下沒有難用的數據庫!THANKS讓 PostgreSQL 進入全盛狀態!Pigsty非法加馮公眾號數據庫老司機 云計算泥石流