ã¯ããã« Googleã«ã¬ã³ãã¼ã®ãããªæéæ ãæ±ãã·ã¹ãã ãè¨è¨ããéãéå§ã»çµäºæå»ã管çãããã¸ãã¯ã¯å®¹æã§ã¯ãªãã ããããPostgreSQLã«ã¯ ç¯å²å ãããããã®æ©è½ãæ´»ç¨ãããã¨ã§ãéå§æå»ï¼begin_atï¼ã¨çµäºæå»ï¼end_atï¼ã1ã¤ã®ã«ã©ã ã§æ±ããããã«ãªãã ããã§æ¬ç¨¿ã§ã¯ãç¯å²åãç¨ããè¨è¨ã¨ããã®å©ç¹ãç´¹ä»ããã æéæ ãæ±ãé£ãã ã¾ãåæã¨ãã¦æéæ ã®æ±ãããªãé£ããããç´¹ä»ããã ã½ããã¦ã§ã¢ãã¶ã¤ã³ã§ãã£ã¦ããé£è¼ãå®æ¦ãã¼ã¿ãã¼ã¹ãªãã¡ã¯ã¿ãªã³ã°ã® ã12ãåä»ãªæéæ ã«åãåã ã§ãç´¹ä»ããããæéã®ç¯å²ãæ¯è¼ããã¨ããé£ããã ç¯å²ã®éãªãã«ã¯ä»¥ä¸ã®ç¨®é¡ãããã å å«ï¼ç¯å²Aãç¯å²Bãå®å ¨ã«å«ã éè¤ï¼ç¯å²Aã¨ç¯å²Bã«å ±éç¹ããã é£æ¥ï¼ç¯å²Aã¨ç¯å²Bãé£ãåã æéæ ã®æ±ãã¯SQLã«éãããããã°ã©ãã³ã°ã®é¡æã¨ãã¦é£æ度ãé«ãã ç¹ã«éè¤
ããã¯ãªã« ã©ããã¬ãããã¯éçºé¨ã®ãããã§ãã ä»æ¥ãIPAã®ãã¼ã¿ãã¼ã¹ã¹ãã·ã£ãªã¹ã試é¨ãåãã¦ãã¾ããããã®ä¸ã¶æã試é¨å¯¾çãé å¼µã£ã¦ãããZennãæ¸ãæéãããã¾ããªãã£ãã®ã§ã解æ¾æã¨ã¨ãã«åé¨ãã°ã¿ãããªã®ãæ¸ãããã¨æãã¾ãã æ¸ããã¨ã¨åæ æ¸ãã®ã¯ä»¥ä¸ã®ãã¨ã§ãã æºåããã㨠ã¹ã±ã¸ã¥ã¼ã« å©ç¨ããæ¸ç±ã»è¨äº å½æ¥ å½æ¥ãã£ãã㨠試é¨ã®ææ³ è©¦é¨å¾ ãªãåæã¨ãã¦ããããã¯ITã¨ã³ã¸ãã¢ã¨ãã¦ã¯10å¹´ç®ãRDBã使ãå§ãã¦3å¹´ãããã®Webã¨ã³ã¸ãã¢ã§ãã å½æ¥ã¾ã§ã«æºåããã㨠ã¹ã±ã¸ã¥ã¼ã« å ¨ä½çãªå¦ç¿ï¼2023å¹´9æã ã¾ãèªåã¯ãããã¤ã¬ã®ã¥ã©ã¼ã ã¨æãã®ã§ããã2023å¹´ã®9æããããããã£ã¨ãã¼ã¿ãã¼ã¹å¨ãã®åå¼·ããã£ã¦ãã¾ããããã¡ãã®è¨äºã«æ¸ããæ¸ç±ãä¸å¿ã«èªãã§ããããã¼ã¿ãã¼ã¹ã¹ãã·ã£ãªã¹ã試é¨ã®å¯¾çã¨ãã観ç¹ã§å½¹ã«ç«ã£ãããªãã¨æãã®ã¯ä»¥ä¸ã®
PostgreSQLã®ã½ã¼ã¹ã³ã¼ããWebAssemblyãã¤ããªã¨ãã¦ãã«ããããã¨ã§ãNode.jsãªã©ã®JavaScriptã©ã³ã¿ã¤ã ãWebãã©ã¦ã¶ä¸ã§ï¼ã»ã¼ï¼ãã«æ©è½ã®PostgreSQLãå®è¡å¯è½ã«ãããPGliteããå ¬éããã¾ããã PGliteã¯PostgreSQLã®Cã®ã½ã¼ã¹ãEmscriptenã§ã³ã³ãã¤ã« PostgreSQLã¯ãªã¼ãã³ã½ã¼ã¹ã®ä»£è¡¨çãªãªã¬ã¼ã·ã§ãã«ãã¼ã¿ãã¼ã¹ã§ãããCè¨èªã§éçºããã¦ãã¾ãã PGliteã¯ãã®PostgreSQLã®Cã®ã½ã¼ã¹ã³ã¼ãã®ãã«ãã«Emscriptenã³ã³ãã¤ã©ã使ç¨ãã¦WebAssemblyãã¤ããªã¨ãã¦åºåãJavaScript/TypeScriptããã©ã¤ãã©ãªã¨ãã¦å¼ã³åºããããã«ãããã®ã§ãã ãã ãEmscriptenã§ã³ã³ãã¤ã«ãããããã°ã©ã ã¯æ°ããããã»ã¹ããã©ã¼ã¯ã§ããªããããPGliteã¯Postg
ã¯ããã« åãã¾ãã¦ãæ ªå¼ä¼ç¤¾Techouseã¨ã³ã¸ãã¢ã¤ã³ã¿ã¼ã³ã® sakaidubz ã¨ç³ãã¾ããæ¬æ¥ã¯ç§ã®æºãã£ã¦ãããããã¯ãã§ããã¯ã©ã¦ããã¦ã¹å´åã§å©ç¨ãã¦ãã RLS (Row Level Security) ã®æè¡ã«ã¤ãã¦ç´¹ä»ãã¾ãã Techouse ã§ã¯ãéè¦æè¡ã¨ã㦠RLS ãå¤ç¨ãã¦ãã¾ãã é常 PostgreSQL ã®éç¨æã«ã¯å©ç¨ããªããã®ã§ãããã Techouse ã®éçºã¡ã³ãã¼ã¨ãã¦ã¸ã§ã¤ã³ããã¿ãªãããææ £ããã¾ã§ã«å°ãè¦å´ãããã¦ããããã§ãã ããã§ãã®å ´ãåãã¦è§£èª¬ãã¦ã¿ããã¨æãç«ã¡ã¾ããã ã¯ã©ã¦ããã¦ã¹å´åã«ã¤ã㦠RLS ã«ã¤ãã¦ç´¹ä»ããåã«ãç§ãéçºãã¦ããã¯ã©ã¦ããã¦ã¹å´åã«ã¤ãã¦ç´¹ä»ãã¾ãã ã¯ã©ã¦ããã¦ã¹å´åã¯äººäºå´åã«ãããè¤éãªæ¥åã®é»ååãæ¨é²ããã»ããªã¼ãã¼åã»ã¯ã©ã¦ãæ¥åæ¯æ´ãµã¼ãã¹ã§ããå種æç¶ããå¹´æ«èª¿æ´ã¨ãã£ãæ³
SRE NEXT 2024 ã®çºè¡¨è³æã§ãã https://sre-next.dev/2024/schedule/#jp041 ãåéã¨éã¹ããã¾ãå ´ã¢ã㪠ãã©ã¬ã«ãã§ã¯ãã¯ã©ã¦ããã³ãã¼ã«ããä¸å®æã¡ã³ããã³ã¹ãå£ç¯ã¤ãã³ãã«ããã¢ã¯ã»ã¹æ¥å¢ã«ãã£ã¦ãã¼ã¿ãã¼ã¹ãä¸å®å®ã«ãªããæçµçã«ãµã¼â¦
PostgreSQLã®ããã¼ã¸ããµã¼ãã¹ãªã©ãæä¾ãã¦ããTimescaleã¯ãPostgreSQLã§é«éãªãã¯ãã«ãã¼ã¿ãã¼ã¹æ©è½ãå®ç¾ããæ¡å¼µæ©è½ãPgvectorcaleãããªã¼ãã³ã½ã¼ã¹ã¨ãã¦å ¬éãããã¨ãçºè¡¨ãã¾ããã 大è¦æ¨¡è¨èªã¢ãã«ãç¨ããçæAIã®æ³¨ç®åº¦ãé«ã¾ãä¸ã§ãæç« ãç»åãé³å£°ã¨ãã£ããã¼ã¿ã®ç¹å¾´ãæ°å¤ã§è¡¨ç¾ãããã¯ãã«åï¼ãããã¯ã¨ã³ããã£ã³ã°ï¼ã«ããã大è¦æ¨¡è¨èªã¢ãã«ã§æ±ããããã«ãããã¨ã¸ã®æ³¨ç®ãé«ã¾ã£ã¦ãã¦ãã¾ãã ãã¯ãã«ãã¼ã¿ãã¼ã¹ã¯ããã®ãã¯ãã«åãããè¨å¤§ãªãã¼ã¿ã®ä¿åãé¡ä¼¼åº¦ã®æ¤ç´¢ãªã©ãå¯è½ã§ãã ä¾ãã°ãRAGï¼Retrieval Augmented Generationï¼ã¨å¼ã°ããææ³ã«ãã大è¦æ¨¡è¨èªã¢ãã«ã®åçã«å¤é¨ã®ãã¼ã¿ãã¼ã¹ããåå¾ãããã¼ã¿ãçµã¿è¾¼ããã¨ãã§ãã¾ããããããå ´é¢ã§ãã¯ãã«ãã¼ã¿ãã¼ã¹ãæ´»ç¨ããã¾ãã é«éãã¯ãã«ãã¼ã¿ã
ã·ã³ã°ã«ãã¤ããªã§ãã¼ã«ã«å®è¡å¯è½ãé«éãªOLAPç¨ãªã¼ãã³ã½ã¼ã¹DBãDuckDB 1.0ãæ£å¼ãªãªã¼ã¹ ãªã¼ãã³ã½ã¼ã¹ã¨ãã¦éçºããã¦ããOLAPç¨ãã¼ã¿ãã¼ã¹ãDuckDBããæ£å¼çã¨ãªããã¼ã¸ã§ã³1.0ã«å°éãããã¨ãçºè¡¨ããã¾ããã OLAPç¨ã®ãã¼ã¿ãã¼ã¹ã¨ããã°ãã¯ã©ã¤ã¢ã³ãï¼ãµã¼ãæ¹å¼ã®å¤§è¦æ¨¡ãªãµã¼ãã¢ããªã±ã¼ã·ã§ã³ãä¸è¬çã§ãããDuckDBã¯ãSQLiteã®ããã«ãã¼ã«ã«ç°å¢ä¸ã§ã·ã³ã°ã«ãã¤ããªã§ãã¼ã«ã«ç°å¢ã§ãç°¡åã«å®è¡ã§ããç¹ãæ大ã®ç¹å¾´ã§ãã SQLã§ã¯ã¨ãªãè¨è¿°ããã¨åæã«ãPythonãJavaãNode.jsãRustãGoãC/C++ãRãODBCãªã©ããå¼ã³åºããAPIãåãã¦ãããã¯ã©ã¤ã¢ã³ãã¢ããªã±ã¼ã·ã§ã³ã«çµã¿è¾¼ããã¨ãã§ãã¾ãã 対å¿ãããã©ãããã©ã¼ã ã¯Windowsï¼x86_64ï¼ãmacOSï¼Intel/Apple Siliconï¼ãLin
è¿å¹´ã®ãã¼ã¿ãã¼ã¹ã®æ°æ½®æµã«NewSQLã¨å¼ã°ããä¸ç¾¤ã®ãã¼ã¿ãã¼ã¹è£½å群ã®ç»å ´ãããããã®ã³ã³ã»ãããä¸è¨ã§ããã¨ãRDBã¨NoSQLã®ããã¨ãã©ãã§ãããSQLã¤ã³ã¿ãã§ã¼ã¹ã¨å¼·ããã¼ã¿ä¸è²«æ§ï¼ACIDï¼ã¨ããRDBã®å©ç¹ã¨æ°´å¹³æ¹åã®ã¹ã±ã¼ã©ããªãã£ã¨ããNoSQLã®é·æãå ¼ãåãã夢ã®ãããªãã¼ã¿ãã¼ã¹ã§ãããä¸å³ã«è¦ãããããã«ãRDBã¨NoSQLãéããã¬ã¼ããªããçºçããã¦ããã®ã«å¯¾ãã¦ãNewSQLã§ã¯ããã解æ¶ããã¦ããã®ãåããã RDB vs NoSQL vs NewSQLæ¬å½ã«ãã®ãããªå¤¢ã®å®ç¾ã«æåãã¦ããããã¨ããã®ã¯ã¾ã è°è«ãç¶ãã¦ãããï¼ã¯ã¨ãªã®ã¹ã«ã¼ããããåºãããã«ã¬ã¤ãã³ã·ãç ç²ã«ãã¦ããã®ã§æ¬å½ã«ãã¬ã¼ããªãã解æ¶ã¯ãã¦ããªãããªã©ã®åé¡ãææããã¦ããï¼ãåç¨ã§ãå©ç¨å¯è½ãªè£½åã¨ãã¦Google SpannerãTiDBãYugabyteDBãCoc
ã¯ããã« æ¬ç¨¿ã§ã¯åæç¨ã¯ã¨ãªãã¹ã©ã¹ã©æ¸ããããã«ãªãã¾ã§ã®åå¼·æ¹æ³ãæ¸ãæ¹ã®ã³ããã¾ã¨ãã¦ã¿ã¾ãããå ·ä½çã«ã¯ãèªåãã¯ã¨ãªãæ¸ããããã«ãªãã¾ã§ã«å©ç¨ããææã¨ãæ®æ®µã¯ã¨ãªãæ¸ãéã«æèãã¦ãããã¨ãè¨èªåãã¦ãã¾ãã æ³å®èªè ã¨ãã¦ãSQLãã¬ã³ã¬ã³æ¸ãäºå®ã®æ°åã®ãã¼ã¿ã¢ããªã¹ã/ãã¼ã¿ãµã¤ã¨ã³ãã£ã¹ããæ³å®ãã¦ãã¾ãã åå¼·æ¹æ³ åºç¤ã®åºç¤ããµãã¨åº§å¦ã§åå¼·ãã¦ãããå®è·µææã§å®éã«ã¯ã¨ãªãæ¸ãã®ãæã¾ããã§ãã å®åã§ä½¿ããåæã¯ã¨ãªãæ¸ããããã«ãªãããã«ã¯ãå®åçµé¨ãç©ãã®ãä¸çªè¯ãã§ãããã ããã¨ãã£ã¦åº§å¦ã御座ãªãã«ãã¦è¯ãã¨ããããã§ã¯ããã¾ãããSQLã«èªä¿¡ããªã人ã¯ãä¸åº¦åºç¤ã«ç«ã¡è¿ã£ã¦ææ³ã®ç解度ã確èªããæ¹ãè¯ãã¨æãã¾ãã æ¸ç± SQL 第2ç: ã¼ãããã¯ããããã¼ã¿ãã¼ã¹æä½ åæã¨ãã¦ãSQLã«é¢ããæ¸ç±ã®å¤ãããã¼ã¿ãã¼ã¹éç¨/æ§ç¯ã«é¢ããæ¸ç±ãã»
TL;DR TiDBã«ãããããã©ã¼ãã³ã¹æ¤è¨¼ãã©ããã£ã¦è¡ã£ãã ããã©ã¼ãã³ã¹æ¤è¨¼ãè¡ã£ãã¨ãã«ã¤ã¾ã¥ããåé¡ã¨ãã®å¯¾å¿ç TiDBã®ä»æ§ãã¢ã¼ããã¯ãã£ãªã©ã®è©±ã¯ããã¾ãã åæ 対象ã®DBã¯Amazon Auroraã§ç¨¼åä¸ DBã¨ã³ã¸ã³ã¯MySQL TiDBã«ç§»è¡ã§ããªããPoCãå®æ½ DBå¨ãã«ããããªèª²é¡ããããTiDBã§è§£æ±ºã§ããªããæ¤è¨¼ TiDB Cloudã§æ¤è¨¼ æ¬çªéç¨ãæ³å®ãã¦TiDB Dedicatedãå©ç¨ å ã«ãä¼ããããã㨠TiDBå°å ¥ãããã¨ãè¨ãåã«ãä»ä½¿ã£ã¦ããRDBã§çºçãã¦ããã¹ãã¼ã¯ã¨ãªã¨ãIndexè¨è¨ãè¦ç´ããæ¹ãè¯ãã§ãç¬ çç±ã¯ãã®è¨äºãè¦ã¦ããããã¨ãããã¨æãã¾ãï½ ããã©ã¼ãã³ã¹æ¤è¨¼ã®é²ãæ¹ 1. ããã©ã¼ãã³ã¹æ¤è¨¼ã«å©ç¨ããã¯ã¨ãªãæ´ãåºã 観ç¹ã¨ãã¦ã¯ä»¥ä¸ã®2㤠å®è¡ãããé »åº¦ãé«ãSQL å®è¡é度ãé ãSQLï¼ã¹ãã¼ã¯ã¨ãªï¼
ããã«ã¡ã¯ã澤ç°é 彦ï¼@masahiko_sawadaï¼ã¨ç³ãã¾ãããªã¼ãã³ã½ã¼ã¹ã®ãã¼ã¿ãã¼ã¹ PostgreSQLã®ã³ããã¿ããã¦ãã¾ãã2022å¹´ããã¯ãAmazon Web Services Japanï¼ä»¥ä¸ãAWSã¸ã£ãã³ï¼ã§ã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ã¨ãã¦PostgreSQLã®éçºããã¦ãã¾ãã 2013å¹´ã«æ¥åã®ä¸é¨ã¨ãã¦å§ããPostgreSQLã®éçºã¯ãããã10年以ä¸ç¶ããä»ã§ã¯ãã«ã¿ã¤ã ã®æ¥åã¨ãªã£ã¦ãã¾ããããããã®é¸æãã¨ãããã¼ãã§å¯ç¨¿ã®æ©ä¼ãããã ããã®ã§ãæ¬è¨äºã§ã¯ãç§ãã©ã®ããã«PostgreSQLéçºè ã®ãã£ãªã¢ãé¸æããã®ãããªã10年以ä¸ãã®é·ãéPostgreSQLã®éçºãç¶ãã¦ããã®ãããªã©ãç´¹ä»ãããã¨æãã¾ãã ãã¼ã¿ãã¼ã¹ãå§ãããã£ãã 大å¦çã®æã¯å ã æå¡å¿æã ã£ãã®ã§ãããè¬ç¾©ã§åãã¦ããã°ã©ãã³ã°ãå¦ã³ããã®é¢ç½ãããã¨ã³ã¸ãã¢ãç®æã
質åããããã¨ãå¤ãã®ã§PostgreSQLåå¦è ãéç¨ãè¡ãããã«ãã£ã¦ããç¥èã«å¿ è¦ãªå 容ãã¾ã¨ããã PostgreSQLã®åºæ¬çãªã¢ã¼ããã¯ã㣠PostgreSQLã®ã¢ã¼ããã¯ãã£ãç¥ããªãã¨èªåããã£ã¦ããä½æ¥ãå±éºãªä½æ¥ãã©ããããããªããããã©ã¡ã¼ã¿ã®æå³ãããããªãã ããã§ä»¥ä¸ã®ãªã³ã¯ãèªãã¨è¯ãã å¯å£«éãå¾è¿°ã®è³æãåèã«ã¾ã¨ããã®ã ãããªã¨æãããè¨äºã é常ã«ããã¾ã¨ã¾ã£ã¦ããã®ã§ããããããã www.fujitsu.com ãã£ã¨ç´°ããç¥ããããªãPostgreSQL Internalsãããããã å¯å£«éã®è³æã¨éè¤ããã¨ãããããããã£ã¡ãæ¬å®¶ã Githubã§ç®¡çããã¦ããã®ã§èª¤åè±åãªã©ãã£ããæ°è»½ã«PRãåºãã¦ã»ããã www.postgresqlinternals.org PostgreSQL Internalsãå°ãå¤ãã®ã§ææ°äºæ ã§ç¥ãããå ´
æ¦è¦ å®åã§ä½¿ç¨ãããSQLãã¾ã¨ãã¾ãããOracle19cã¨Oracle12cã§ã®å©ç¨å®ç¸¾ãããã¾ãããä»ã®ãã¼ã¿ãã¼ã¹ã¾ããã¼ã¸ã§ã³ã§ã®æ¤è¨¼ã¯è¡ã£ã¦ãã¾ããã éæ追å äºå®ã§ãã Oracleãã¼ã¿ãã¼ã¹ã¡ã¿ãã¼ã¿æ½åº ãªãã¸ã§ã¯ãã®å®ç¾©ãä½æã«ä½¿ç¨ãããSQLæãæ½åº SELECT sqlarea.sql_id AS sql_id, parsing_schema_name, CASE WHEN length(sql_fulltext) > 10000 THEN to_clob('sql is too long') ELSE sql_fulltext END AS sql_fulltext, sql_bind_capture.name AS param_name, sql_bind_capture.value_string AS bind_value, last_active_tim
æ¥æ¬PostgreSQLã¦ã¼ã¶ä¼ï¼ä»¥ä¸ãJPUGï¼ããæ¥ã¾ãã @soudai1025 ã§ãã ãã®è¨äºã¯ PostgreSQL Advent Calendar 2023 ã·ãªã¼ãº 1 ã® 5 æ¥ç®ã®è¨äºã§ãã www.postgresql.jp PostgreSQLã¦ã¼ã¶ä¼ã£ã¦ï¼ JPUGã¯NPOæ³äººã§ãã ç®çãã¡ããã¨æè¨ããã¦ãã¾ãã æ¬ä¼ã¯æ¥æ¬ã«ãããPostgreSQLã®æ®åã¨çºå±ã主ãªç®çã¨ãã¾ããå ·ä½çã«ã¯ä»¥ä¸ã®æ´»åãè¡ãã¾ãã 1. PostgreSQLã®ç 究éçºããã³æ®åä¿é² 2. PostgreSQLã«é¢ããæ å ±ã®å ¬é 3. ä¼å¡ç¸äºããã³å¤é¨ã¨ã®æè¡çã»äººéçäº¤æµ www.postgresql.jp NPOæ³äººã ã¨ä½ãéãã®ï¼ ï¼çªå¤§ããªã¨ããã¯ãéã®ç®¡çãéææ§ãæã£ã¦ç®¡çãã¦ãããã¨ã§ãã å¾è¿°ããæ´»åè²»ãåè³ä¼å¡æ§*1ã®åè³ä¼è²»ããæ»åºãã¦ç®¡çãã¦ãã¾ãã ã©
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}