Aurora(PostgreSQL)に大量データを作成する方法


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

前提

・EC2(RedHat Linux 8.4)でランダムテキストを作成すること
・Aurora(PostgreSQL)を構築済みであること
※Aurora(PostgreSQL)の構築手順を下記のブログを参照
CloudFormationでRDS(Aurora PostgreSQL リージョン別クラスター)を構築する

※データの挿入・CSVファイルのインポートによるデータ作成方法を下記のブログを参照
Aurora(PostgreSQL)へのデータ導入方法

手順

1.8KBのランダムな文字列(数字のみ)を作成する

/dev/urandom を利用してランダムな文字列
trで不要な文字を取り除いたり桁数を変更することも可能です。

コマンド:
tr -dc 0-9 < /dev/urandom | head -c 8K

実行例:

[ec2-user@ip-10-30-101-27 ~]$ testdata=$(tr -dc 0-9 < /dev/urandom | head -c 8K)
[ec2-user@ip-10-30-101-27 ~]$ echo $testdata
54454133903004707806384412560605614644024239264047266567055852039799202583668320777688842179604709796971387541602681293835789727624861385202803199016874456995974586739780609408881533950036765184176618797696362387564468902827721877074985673090388701601522141438893798204283486220497663957437318096739870779388622238506673804235894165789148647002690280753917576832237669086104593296195807673988395946828216637962029981177119893147868401202342680534235703333667048390679040162857997074226338954822478664184209040907315759999999027209342896202733483667920566688420030233930037431646294043451036750941241556258529075090853883649498489086186079750674914379610653094108429297916028769557044385084786238028314453291257999861840242717550157278359019855257298823843875518013922198693771605959285425342698718871653043241415421776636174518772747108499981595803376288812314370344186780499995884255266434605439625233062994887252344684041012340331751990287298299022030473775342743374507573567225672147170231664552245870530584050940487318255985023513291724738786885773566284056830163893368621912746669057776931474458200801691624773700769806084902629897508028560619763150071024497879994023984074753647315257391659357423152646281567104533493755716245772535867432412866428991266433487157487325511613405287265291113095929350515932923787465674886464662913252227344752665762962801225136769706346004760739969970621376276363390170154670236149423611705093807721096161084293644859679835361780379641630158475608681733868040956077364054177025393283565340110968875585195240689905153263252305313996929477401474997373513582083913135100094739167483894995449891808566735115132318890131295402281502819903775799053897693174215271693510780833786169525968652541610745593248970089783581146337358092604714858019034148791480856398472689032203780881196194386452957173131181420397766453127566010165100465681637317090409362509215986644585101682323701906102548618755310422983814365488987567337530126350643579509339086129044376859040023066073960289614721280986722224015579863299270341503735889897954362731920121427597611509707835890558801820890611742858898057789709466304764469892619077770586690361325860671852280449121395187040899612732322721837571949747952765957665169161151242740614545455773690227182354726970971689580083939633183322991412751484448508474168755971421057634355219941383148209258548011380490969498786748106048603286831552785666348124899017155180326610514082844192938745987690197465958977072786398823974600278735713773818091478189688536491140936699204633496767437908463473656945334098371439801409368786808623375394559816803255654512888233052354088461196980868887150500833268868450774832219308857355315788406954532795573942020049697345040131157630512613783379225396083071365091054426151233959319143994011846346937425077372245378824230175661082662990966623250138419665494382479766674112095635887060618782736660223457336924963286881269142184826730544328170422595619798487269295677707244646377099506397061445950805852526978212726213712890083573627613764757026402048831873950992444395990315631195493825555703025700115372979441550882317987722659566245295254932889411829394157133714453024165905546358977034570896494732229132105837376046547557456354116456430652580902726452423347996999878143254474135821453447077167522801648402941730536994894785480881398275517878052641619827013746228859976806139298013193382361079372288558480641457306389405043206251541178482570199072276853779359226498395636058442613118004249392775561130538182014189379432213668477926452292188366248742424538522499388846432886176946120123442364048437240556642555701290089246478875041414842719608079065992858898568518381239161900290650522844308989622143016937103335234006419197682615315176007659705756616106059393476224506908915873025784336743308451084604487295232053541735126226532626805849389261166514512456845910673590875171051875986905506331750617109462922065871631696261430708222060859635342033744246463734261723584544928949826941466207783973407606502182655651925913545412643942076338817913821968321551280991048366877193533846044535891906134671966993698920294338872613442425295813955324594876574382413068040956861034544803442194688869723631308996167611835431616508847122640813460803958286231111445188829979216960388429751535443257610836142327882824121249842660606716450946155731293402155933516485545362286081365517515320427887681123651001234671103493174578246564894167708269209414240486142796809218578754588957884987007789495113740026119083947293356772027524765651940016085908095318662210508674796516393312306026864646783151768876049495486580636505554025567177234478493364550031493331210449572289770943260779970829278276991266804827326856053024828984086704228704155017335378584003446290562336071307409300845194055306449750390390714847903427093718110275154876155154040589607268992769653997532287368758348340477912230895992483363651008489805074544233468642256714610682403824570771758996358369379724070819235268377859773303135829020002980070158156456200289515224486832820594999671990087783174269213734086537276885503967129469189175319974399838678268013825304572743288145524055681438180172462898107031456111575683037709212117814101545981439345145103642980366116880399649757702669315099236139344676737657732357213212332509953512901594692158113564196073995520669697574926636881515609657673411958644273901042912473364303061056120728352866751947309786120865977021217275293355133393067873779139556913220957418511946971496870815766734958572871300092443586549165043672783417181124908211905839713799131027429931892788193935668520614919074937431122986351428334597182988900948010718916617512179747993735638235809092391644354383242279226549177957394268204216733617144693612953689066428733237242850409854712237592698316138726534796856325995931309481104330496875636879823162002962213267141715185950544753592001707966774107013740865248964676572150114561875877757831104108817014235298001197229819944199959819208655407119274824595311463499194738163277311259687879418767016422433833806166713542228198693046809635668025966502972132001666078710929185194850958116399739904127972240787633095107354690663328485812106648276661838226380743377755381152476943395663148763118921104088497105785253569728450743706017685921356438423417315953129462388804803195168510334817266354968015117102341091704322519008824872562580268849481999104277848433418286423288169843075816935433415367879516197609208736575344213896382179241706692134896694488592112681974878664623254443929493094726571137727656837674379639066009311704463323087676208300092657077826986061890522226883081055481835583935959600059719787808389994151096487526532532894918525034955261427997829574945242907295941596485814616559876256852901848141392730477522591053610874567612212023795063637479401124507764314677555219973644122737658039736202280806452459942084877810400524687089532378857527242463470963909386122348196085548128283926010598057900742883067433378782054089150102135871444964459137487792049456547949623153119371915709643464013724301515853376134882652400274756703685048136388246061154105090117338974812027153224754750313232114529468291082924043800032976470010224490707299748043118406891463237310842585585420372241467554642458183045452839478826751982208439849159927583946595297052830341362545748266120432601813216561660816126234661972692243032471703663657869881986096425540270882914597326264672279528135642045665964058121619757213251897028450607065163498170843514698535942814268003615952436855135912256884915266116643001019419877305508022831184611781632942344061388012690753168610515931571951036687411786887329895425863779139515067804862828760221604187107724702992255072767778952769761585882303035476623047168844231568122489173760738826517931970089344711234590388014351446067139011331320535199056854496010254079849519805600361620569969369585380340765796590586045132016354182561622105154260510300270242455941666456477041030456699101310521191306617701361110982943788876242073114627062134125045703974191774496313242041511715115167011631296152344045144406898267373995614489787546274116510754149131038105482028897551437451834008285749476733030884374353169206552236394893570377473342705774742403479216582990820207352517764311064302908564
[ec2-user@ip-10-30-101-27 ~]$

2.データベースに接続

psql -h ホスト名 -p ポート番号 -U ロール名 -d データベース名

実行例:

[ec2-user@ip-10-30-101-27 ~]$ psql -h test-rds-dev-aurora-posgre.cluster-c5qwrqga2axq.ap-northeast-1.rds.amazonaws.com -p 5432 -U postgres -d test_db
Password for user postgres:
psql (10.21, server 13.7)
WARNING: psql major version 10, server major version 13.
         Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

test_db=>

手順の詳細ついて下記のブログに参照
EC2(Red Hat Linux)からpsqlでAurora(PostgreSQL)に接続する手順

3.大量データの作成

3-1. 変数に「8KBのランダムな文字列(数字のみ)」を設定する

コマンド:
\ set j <8KBのランダムな文字列(数字のみ)>
実行例:

\ set j 54454133903004707806384412560605614644024239264047266567055852039799202583668320777688842179604709796971387541602681293835789727624861385202803199016874456995974586739780609408881533950036765184176618797696362387564468902827721877074985673090388701601522141438893798204283486220497663957437318096739870779388622238506673804235894165789148647002690280753917576832237669086104593296195807673988395946828216637962029981177119893147868401202342680534235703333667048390679040162857997074226338954822478664184209040907315759999999027209342896202733483667920566688420030233930037431646294043451036750941241556258529075090853883649498489086186079750674914379610653094108429297916028769557044385084786238028314453291257999861840242717550157278359019855257298823843875518013922198693771605959285425342698718871653043241415421776636174518772747108499981595803376288812314370344186780499995884255266434605439625233062994887252344684041012340331751990287298299022030473775342743374507573567225672147170231664552245870530584050940487318255985023513291724738786885773566284056830163893368621912746669057776931474458200801691624773700769806084902629897508028560619763150071024497879994023984074753647315257391659357423152646281567104533493755716245772535867432412866428991266433487157487325511613405287265291113095929350515932923787465674886464662913252227344752665762962801225136769706346004760739969970621376276363390170154670236149423611705093807721096161084293644859679835361780379641630158475608681733868040956077364054177025393283565340110968875585195240689905153263252305313996929477401474997373513582083913135100094739167483894995449891808566735115132318890131295402281502819903775799053897693174215271693510780833786169525968652541610745593248970089783581146337358092604714858019034148791480856398472689032203780881196194386452957173131181420397766453127566010165100465681637317090409362509215986644585101682323701906102548618755310422983814365488987567337530126350643579509339086129044376859040023066073960289614721280986722224015579863299270341503735889897954362731920121427597611509707835890558801820890611742858898057789709466304764469892619077770586690361325860671852280449121395187040899612732322721837571949747952765957665169161151242740614545455773690227182354726970971689580083939633183322991412751484448508474168755971421057634355219941383148209258548011380490969498786748106048603286831552785666348124899017155180326610514082844192938745987690197465958977072786398823974600278735713773818091478189688536491140936699204633496767437908463473656945334098371439801409368786808623375394559816803255654512888233052354088461196980868887150500833268868450774832219308857355315788406954532795573942020049697345040131157630512613783379225396083071365091054426151233959319143994011846346937425077372245378824230175661082662990966623250138419665494382479766674112095635887060618782736660223457336924963286881269142184826730544328170422595619798487269295677707244646377099506397061445950805852526978212726213712890083573627613764757026402048831873950992444395990315631195493825555703025700115372979441550882317987722659566245295254932889411829394157133714453024165905546358977034570896494732229132105837376046547557456354116456430652580902726452423347996999878143254474135821453447077167522801648402941730536994894785480881398275517878052641619827013746228859976806139298013193382361079372288558480641457306389405043206251541178482570199072276853779359226498395636058442613118004249392775561130538182014189379432213668477926452292188366248742424538522499388846432886176946120123442364048437240556642555701290089246478875041414842719608079065992858898568518381239161900290650522844308989622143016937103335234006419197682615315176007659705756616106059393476224506908915873025784336743308451084604487295232053541735126226532626805849389261166514512456845910673590875171051875986905506331750617109462922065871631696261430708222060859635342033744246463734261723584544928949826941466207783973407606502182655651925913545412643942076338817913821968321551280991048366877193533846044535891906134671966993698920294338872613442425295813955324594876574382413068040956861034544803442194688869723631308996167611835431616508847122640813460803958286231111445188829979216960388429751535443257610836142327882824121249842660606716450946155731293402155933516485545362286081365517515320427887681123651001234671103493174578246564894167708269209414240486142796809218578754588957884987007789495113740026119083947293356772027524765651940016085908095318662210508674796516393312306026864646783151768876049495486580636505554025567177234478493364550031493331210449572289770943260779970829278276991266804827326856053024828984086704228704155017335378584003446290562336071307409300845194055306449750390390714847903427093718110275154876155154040589607268992769653997532287368758348340477912230895992483363651008489805074544233468642256714610682403824570771758996358369379724070819235268377859773303135829020002980070158156456200289515224486832820594999671990087783174269213734086537276885503967129469189175319974399838678268013825304572743288145524055681438180172462898107031456111575683037709212117814101545981439345145103642980366116880399649757702669315099236139344676737657732357213212332509953512901594692158113564196073995520669697574926636881515609657673411958644273901042912473364303061056120728352866751947309786120865977021217275293355133393067873779139556913220957418511946971496870815766734958572871300092443586549165043672783417181124908211905839713799131027429931892788193935668520614919074937431122986351428334597182988900948010718916617512179747993735638235809092391644354383242279226549177957394268204216733617144693612953689066428733237242850409854712237592698316138726534796856325995931309481104330496875636879823162002962213267141715185950544753592001707966774107013740865248964676572150114561875877757831104108817014235298001197229819944199959819208655407119274824595311463499194738163277311259687879418767016422433833806166713542228198693046809635668025966502972132001666078710929185194850958116399739904127972240787633095107354690663328485812106648276661838226380743377755381152476943395663148763118921104088497105785253569728450743706017685921356438423417315953129462388804803195168510334817266354968015117102341091704322519008824872562580268849481999104277848433418286423288169843075816935433415367879516197609208736575344213896382179241706692134896694488592112681974878664623254443929493094726571137727656837674379639066009311704463323087676208300092657077826986061890522226883081055481835583935959600059719787808389994151096487526532532894918525034955261427997829574945242907295941596485814616559876256852901848141392730477522591053610874567612212023795063637479401124507764314677555219973644122737658039736202280806452459942084877810400524687089532378857527242463470963909386122348196085548128283926010598057900742883067433378782054089150102135871444964459137487792049456547949623153119371915709643464013724301515853376134882652400274756703685048136388246061154105090117338974812027153224754750313232114529468291082924043800032976470010224490707299748043118406891463237310842585585420372241467554642458183045452839478826751982208439849159927583946595297052830341362545748266120432601813216561660816126234661972692243032471703663657869881986096425540270882914597326264672279528135642045665964058121619757213251897028450607065163498170843514698535942814268003615952436855135912256884915266116643001019419877305508022831184611781632942344061388012690753168610515931571951036687411786887329895425863779139515067804862828760221604187107724702992255072767778952769761585882303035476623047168844231568122489173760738826517931970089344711234590388014351446067139011331320535199056854496010254079849519805600361620569969369585380340765796590586045132016354182561622105154260510300270242455941666456477041030456699101310521191306617701361110982943788876242073114627062134125045703974191774496313242041511715115167011631296152344045144406898267373995614489787546274116510754149131038105482028897551437451834008285749476733030884374353169206552236394893570377473342705774742403479216582990820207352517764311064302908564

3-2. テーブル作成

コマンド
create table test1 (
id integer,
name text
);

3-3. 容量確認

コマンド
select pg_size_pretty(pg_database_size(‘test_db’));

3-4. 10GBテストデータ作成

10GB  1024 × 1024 × 10 / 8 = 1310720

※1GBの場合
1GB  1024 × 1024 / 8 = 131072

※100GBの場合
100GB  1024 × 1024 × 100 / 8 = 13107200

※1TBの場合
1024GB  1024 × 1024 × 1024 / 8 = 134217728

コマンド
insert into test1 (id, name) select i, :j from generate_series(1,1310720) as i;

実行例:
(作成及び容量確認)

test_db=> insert into test1 (id, name) select i, :j from generate_series(1,1310720) as i;
INSERT 0 1310720
test_db=>
test_db=>

test_db=> select pg_size_pretty(pg_database_size('test_db'));
 pg_size_pretty
----------------
 10 GB
(1 row)

まとめ

今回、Aurora(PostgreSQL)に大量データを作成する方法を紹介しました。DBの起動・停止時間の検証やDBスナップショットの取得時間の測定に利用できると思います。

以上です。
少しでもお役に立てれば幸いです。

参考

https://www.home-page.xyz/generate_random/

https://cloud5.jp/linux-random-file/

テーブルとインデックスは全て、固定サイズ(通常8Kバイト。サーバのコンパイル時に異なるサイズを設定可能)のページの集まりとして格納されます。

Last modified: 2022-10-29

Author