<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>PostgreSQL - MasaruのIT＆マーケティングBLOG | Info Tech &amp; Marketing BLOG by Masaru</title>
	<atom:link href="/tag/postgresql/feed/" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>Cross the cliffs of the times</description>
	<lastBuildDate>Wed, 07 Apr 2021 11:04:11 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.8</generator>
<site xmlns="com-wordpress:feed-additions:1">191177362</site>	<item>
		<title>Jupyter NotebookからPythonでPostgreSQL 13を操作する</title>
		<link>/2021/04/07/jupyter-notebook%e3%81%8b%e3%82%89python%e3%81%a7postgresql-13%e3%82%92%e6%93%8d%e4%bd%9c%e3%81%99%e3%82%8b/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=jupyter-notebook%25e3%2581%258b%25e3%2582%2589python%25e3%2581%25a7postgresql-13%25e3%2582%2592%25e6%2593%258d%25e4%25bd%259c%25e3%2581%2599%25e3%2582%258b</link>
					<comments>/2021/04/07/jupyter-notebook%e3%81%8b%e3%82%89python%e3%81%a7postgresql-13%e3%82%92%e6%93%8d%e4%bd%9c%e3%81%99%e3%82%8b/#respond</comments>
		
		<dc:creator><![CDATA[masaru]]></dc:creator>
		<pubDate>Wed, 07 Apr 2021 10:49:51 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[データ分析]]></category>
		<category><![CDATA[Anaconda]]></category>
		<category><![CDATA[Jupyter Notebook]]></category>
		<category><![CDATA[Plotly]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 13]]></category>
		<category><![CDATA[psycopg2]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">/?p=208</guid>

					<description><![CDATA[<p>まずは堅実に定番RDBから 　NoSQLブームで勉強会界隈では影が薄れた感があるRDBMSですが、当たり前の存在になっただけで健在です。当サイトが使っているCMS『WordPress』にはMySQLが組み込まれていますし&#8230; <a class="more-link" href="/2021/04/07/jupyter-notebook%e3%81%8b%e3%82%89python%e3%81%a7postgresql-13%e3%82%92%e6%93%8d%e4%bd%9c%e3%81%99%e3%82%8b/">続きを読む <span class="screen-reader-text">Jupyter NotebookからPythonでPostgreSQL 13を操作する</span></a></p>
<p>The post <a href="/2021/04/07/jupyter-notebook%e3%81%8b%e3%82%89python%e3%81%a7postgresql-13%e3%82%92%e6%93%8d%e4%bd%9c%e3%81%99%e3%82%8b/">Jupyter NotebookからPythonでPostgreSQL 13を操作する</a> first appeared on <a href="/">MasaruのIT＆マーケティングBLOG  |  Info Tech & Marketing BLOG by Masaru</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2>まずは堅実に定番RDBから</h2>



<p>　NoSQLブームで勉強会界隈では影が薄れた感があるRDBMSですが、当たり前の存在になっただけで健在です。当サイトが使っているCMS『WordPress』にはMySQLが組み込まれていますし、当サイトを置いているAWSでも<a href="https://aws.amazon.com/jp/blogs/news/accelerate-amazon-redshift-federated-query-adoption-with-aws-cloudformation/" target="_blank" rel="noreferrer noopener">PostgreSQLがRedShiftやAuroraなど基幹サービスで使われています</a>。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="731" height="486" src="https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/AccelerateRedshiftFederatedQuery1.png?resize=731%2C486&#038;ssl=1" alt="" class="wp-image-291" srcset="https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/AccelerateRedshiftFederatedQuery1.png?w=731&amp;ssl=1 731w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/AccelerateRedshiftFederatedQuery1.png?resize=300%2C199&amp;ssl=1 300w" sizes="(max-width: 731px) 100vw, 731px" data-recalc-dims="1" /></figure>



<p>　統計モデリングを知らないのにディープラーニングでイキる人が信用出来ないのと同様、RDBMSを知らないのにNoSQLを語るのもイタい人です。私も昨年は<a href="https://www.elastic.co/jp/elasticsearch/" target="_blank" rel="noreferrer noopener">Elasticsearch</a>などのNoSQLや<a href="https://ignite.apache.org/" target="_blank" rel="noreferrer noopener">Apache Ignite</a>などの分散データベースにハマっていましたが、自分のイタさに気づいたためPostgreSQLを学び直しています。</p>



<p>　NoSQLや分散データベースを業務で使いこなしている方々の講演は勉強会で聞くことが出来ますが、彼らは「RDBMSを経験した上でNoSQLに進んでいる」のです。未経験者が講演を聞いていきなりNoSQLに行くのは『悪手』です。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2>初心者がNoSQLや分散RDBでやりたいことはPostgreSQLでも出来ている</h2>



<p>　NoSQLが主に扱うJSONはPosgreSQLでも『<a href="https://www.postgresql.org/docs/13/datatype-json.html" target="_blank" rel="noreferrer noopener">JSON型</a>』として扱えます。IMDBで話題となったインメモリ処理はPostgreSQLでも<a href="https://techblog.gmo-ap.jp/2020/11/25/postgresql_memory_architecture/" target="_blank" rel="noreferrer noopener">駆使されています</a>。分散データベースの特徴であるクエリの並列処理はPostgreSQLでも<a href="https://oss-db.jp/dojo/dojo_column_04" target="_blank" rel="noreferrer noopener">パラレルクエリ</a>として実装されている上、特別の設定無しで自動的に使ってくれます。</p>



<p>　昨年、実際にApage IgniteでPCサーバ5台のクラスタを構築しましたが、数10GB程度のデータではクエリに要する時間がシングルノードのPostgreSQLの方が速かったです。2.5GbEでもLANの遅延で並列処理のメリットが相殺されてしまいます。この規模のデータでクエリを高速化するなら、<a href="https://www.tsukumo.co.jp/bto/pc/workstation/2021/WA9A-G210WT.html" target="_blank" rel="noreferrer noopener">32コア64スレッドのパソコン</a>でも買えば良いと思います。</p>



<p>　こういう事実は、基本的すぎて勉強会ではなかなか教えてもらえないですね。エンジニアの方にとっては常識なのでしょうが……<img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f4a6.png" alt="💦" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2>PythonでPostgreSQLを扱うパッケージ『psycopg2』</h2>



<p>　PythonでPostgreSQLを扱う際は『psycopg2』というパッケージを使うのが一般的なようです。視覚化のためのパッケージ『Plotly』と併せてインストールします。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>(base) masaru@ASUS-TUF-Gaming:~$ conda install psycopg2
(base) masaru@ASUS-TUF-Gaming:~$ conda install plotly</code></pre></div>



<h2>Jupyter Notebookでの実装</h2>



<p>　必要なパッケージの読み込みなどの初期設定を行います。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code># -*- coding: utf-8 -*-
import psycopg2
import pandas as pd
import plotly as py
import plotly.graph_objs as go
from plotly.offline import iplot, init_notebook_mode
init_notebook_mode()</code></pre></div>



<p>　psychopg2でデータベース接続を定義します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>def connect():
    con = psycopg2.connect(&quot;host=&quot; + &quot;localhost&quot; +
                           &quot; port=&quot; + &quot;5432&quot; +
                           &quot; dbname=&quot; + &quot;google_mobility&quot; +
                           &quot; user=&quot; + &quot;masaru&quot; +
                           &quot; password=&quot; + &quot;xxxxxxxxxxxx&quot;)
    return con</code></pre></div>



<p>　続いて、クエリを定義します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>def select_execute(con, sql):
    with con.cursor() as cur:
        cur.execute(sql)
        rows = cur.fetchall()

    return rows</code></pre></div>



<p>　定義したクエリを実行します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>con = connect()
sql =  &quot;select * from google_mobility where SUB_REGION_1 = &#39;Tokyo&#39;&quot;
result = select_execute(con, sql)</code></pre></div>



<p>　クエリの結果をPandasデータフレームに代入します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>df = pd.DataFrame(result)
df.head()</code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" width="737" height="159" src="https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/pypg06.png?resize=737%2C159&#038;ssl=1" alt="" class="wp-image-293" srcset="https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/pypg06.png?w=737&amp;ssl=1 737w, https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/pypg06.png?resize=300%2C65&amp;ssl=1 300w" sizes="(max-width: 737px) 100vw, 737px" data-recalc-dims="1" /></figure>



<p>　とりあえず全部カラム名をつけてあげます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>columns = [&quot;id&quot;,&quot;country_region_code&quot;,&quot;country_region&quot;,&quot;sub_region_1&quot;,&quot;sub_region_2&quot;,&quot;metro_area&quot;,&quot;iso_3166_2_code&quot;,&quot;census_fips_code&quot;,&quot;date&quot;,&quot;retail&quot;,&quot;grocery&quot;,&quot;parks&quot;,&quot;transit&quot;,&quot;workplaces&quot;,&quot;residental&quot;,&quot;place_id&quot;]
df.columns = columns
df.head()</code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" width="750" height="132" src="https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/pypg09.png?resize=750%2C132&#038;ssl=1" alt="" class="wp-image-295" srcset="https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/pypg09.png?w=996&amp;ssl=1 996w, https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/pypg09.png?resize=300%2C53&amp;ssl=1 300w, https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/pypg09.png?resize=768%2C135&amp;ssl=1 768w" sizes="(max-width: 750px) 100vw, 750px" data-recalc-dims="1" /></figure>



<p>　Plotlyで表示するデータを設定します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>trace1 = go.Scatter(
        x = list(df.date),
        y = list(df.retail),
        mode = &#39;lines+markers&#39;,
        name = &#39;retail&#39;,
        marker = dict(
                color = &#39;blue&#39;
                )
        )

trace2 = go.Scatter(
        x = list(df.date),
        y = list(df.grocery),
        mode = &#39;lines+markers&#39;,
        name = &#39;grocery&#39;,
        marker = dict(
                color = &#39;orange&#39;
                )
        )

data = [trace1, trace2]</code></pre></div>



<p>　続いて、Plotlyの特長であるスライダーを設定します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>layout = dict(
    title=&#39;Time series with range slider and selectors&#39;,
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=1,
                     label=&#39;1m&#39;,
                     step=&#39;month&#39;,
                     stepmode=&#39;backward&#39;),
                dict(count=6,
                     label=&#39;6m&#39;,
                     step=&#39;month&#39;,
                     stepmode=&#39;backward&#39;),
                dict(count=1,
                    label=&#39;YTD&#39;,
                    step=&#39;year&#39;,
                    stepmode=&#39;todate&#39;),
                dict(count=1,
                    label=&#39;1y&#39;,
                    step=&#39;year&#39;,
                    stepmode=&#39;backward&#39;),
                dict(step=&#39;all&#39;)
            ])
        ),
        rangeslider=dict(
            visible = True
        ),
        type=&#39;date&#39;
    )
)</code></pre></div>



<p>　グラフを描画します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>fig = dict(data=data, layout=layout)
iplot(fig)</code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" width="750" height="348" src="https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/pypg13.png?resize=750%2C348&#038;ssl=1" alt="" class="wp-image-296" srcset="https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/pypg13.png?w=945&amp;ssl=1 945w, https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/pypg13.png?resize=300%2C139&amp;ssl=1 300w, https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/pypg13.png?resize=768%2C357&amp;ssl=1 768w" sizes="(max-width: 750px) 100vw, 750px" data-recalc-dims="1" /></figure>



<p>　スライダーを動かせるグラフの出来上がりです。</p>
		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_not_liked"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="208"
					data-ulike-nonce="c61a6e13bb"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_208"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	<p><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=%2F2021%2F04%2F07%2Fjupyter-notebook%25e3%2581%258b%25e3%2582%2589python%25e3%2581%25a7postgresql-13%25e3%2582%2592%25e6%2593%258d%25e4%25bd%259c%25e3%2581%2599%25e3%2582%258b%2F&amp;linkname=Jupyter%20Notebook%E3%81%8B%E3%82%89Python%E3%81%A7PostgreSQL%2013%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=%2F2021%2F04%2F07%2Fjupyter-notebook%25e3%2581%258b%25e3%2582%2589python%25e3%2581%25a7postgresql-13%25e3%2582%2592%25e6%2593%258d%25e4%25bd%259c%25e3%2581%2599%25e3%2582%258b%2F&amp;linkname=Jupyter%20Notebook%E3%81%8B%E3%82%89Python%E3%81%A7PostgreSQL%2013%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=%2F2021%2F04%2F07%2Fjupyter-notebook%25e3%2581%258b%25e3%2582%2589python%25e3%2581%25a7postgresql-13%25e3%2582%2592%25e6%2593%258d%25e4%25bd%259c%25e3%2581%2599%25e3%2582%258b%2F&amp;linkname=Jupyter%20Notebook%E3%81%8B%E3%82%89Python%E3%81%A7PostgreSQL%2013%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook_messenger" href="https://www.addtoany.com/add_to/facebook_messenger?linkurl=%2F2021%2F04%2F07%2Fjupyter-notebook%25e3%2581%258b%25e3%2582%2589python%25e3%2581%25a7postgresql-13%25e3%2582%2592%25e6%2593%258d%25e4%25bd%259c%25e3%2581%2599%25e3%2582%258b%2F&amp;linkname=Jupyter%20Notebook%E3%81%8B%E3%82%89Python%E3%81%A7PostgreSQL%2013%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B" title="Messenger" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_copy_link" href="https://www.addtoany.com/add_to/copy_link?linkurl=%2F2021%2F04%2F07%2Fjupyter-notebook%25e3%2581%258b%25e3%2582%2589python%25e3%2581%25a7postgresql-13%25e3%2582%2592%25e6%2593%258d%25e4%25bd%259c%25e3%2581%2599%25e3%2582%258b%2F&amp;linkname=Jupyter%20Notebook%E3%81%8B%E3%82%89Python%E3%81%A7PostgreSQL%2013%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B" title="Copy Link" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=%2F2021%2F04%2F07%2Fjupyter-notebook%25e3%2581%258b%25e3%2582%2589python%25e3%2581%25a7postgresql-13%25e3%2582%2592%25e6%2593%258d%25e4%25bd%259c%25e3%2581%2599%25e3%2582%258b%2F&#038;title=Jupyter%20Notebook%E3%81%8B%E3%82%89Python%E3%81%A7PostgreSQL%2013%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B" data-a2a-url="/2021/04/07/jupyter-notebook%e3%81%8b%e3%82%89python%e3%81%a7postgresql-13%e3%82%92%e6%93%8d%e4%bd%9c%e3%81%99%e3%82%8b/" data-a2a-title="Jupyter NotebookからPythonでPostgreSQL 13を操作する"></a></p><p>The post <a href="/2021/04/07/jupyter-notebook%e3%81%8b%e3%82%89python%e3%81%a7postgresql-13%e3%82%92%e6%93%8d%e4%bd%9c%e3%81%99%e3%82%8b/">Jupyter NotebookからPythonでPostgreSQL 13を操作する</a> first appeared on <a href="/">MasaruのIT＆マーケティングBLOG  |  Info Tech & Marketing BLOG by Masaru</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>/2021/04/07/jupyter-notebook%e3%81%8b%e3%82%89python%e3%81%a7postgresql-13%e3%82%92%e6%93%8d%e4%bd%9c%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">208</post-id>	</item>
		<item>
		<title>Ubuntu 21.04にPostgreSQL 13をインストールする</title>
		<link>/2021/04/05/ubuntu-21-04%e3%81%abpostgresql%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ubuntu-21-04%25e3%2581%25abpostgresql%25e3%2582%2592%25e3%2582%25a4%25e3%2583%25b3%25e3%2582%25b9%25e3%2583%2588%25e3%2583%25bc%25e3%2583%25ab%25e3%2581%2599%25e3%2582%258b</link>
					<comments>/2021/04/05/ubuntu-21-04%e3%81%abpostgresql%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b/#respond</comments>
		
		<dc:creator><![CDATA[masaru]]></dc:creator>
		<pubDate>Mon, 05 Apr 2021 10:45:52 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[PostgreSQL 13]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Ubuntu 21.04]]></category>
		<guid isPermaLink="false">/?p=187</guid>

					<description><![CDATA[<p>準備 　PosgreSQLをaptのレポジトリに登録します。 インストール 　デフォルトではバージョン13が入るようです。 無事動いているようです。 PgAdmin 4は未対応の模様 PgAdminはまだUbuntu 2&#8230; <a class="more-link" href="/2021/04/05/ubuntu-21-04%e3%81%abpostgresql%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b/">続きを読む <span class="screen-reader-text">Ubuntu 21.04にPostgreSQL 13をインストールする</span></a></p>
<p>The post <a href="/2021/04/05/ubuntu-21-04%e3%81%abpostgresql%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b/">Ubuntu 21.04にPostgreSQL 13をインストールする</a> first appeared on <a href="/">MasaruのIT＆マーケティングBLOG  |  Info Tech & Marketing BLOG by Masaru</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2>準備</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo apt install curl ca-certificates gnupg
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c &#39;echo &quot;deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main&quot; &gt; /etc/apt/sources.list.d/pgdg.list&#39;
sudo apt update</code></pre></div>



<p>　PosgreSQLをaptのレポジトリに登録します。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2>インストール</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>(base) masaru@ASUS-TUF-Gaming:~$ sudo apt install postgresql
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
以下の追加パッケージがインストールされます:
  postgresql-13 postgresql-client-13 postgresql-client-common
  postgresql-common sysstat
提案パッケージ:
  postgresql-doc postgresql-doc-13 libjson-perl isag
以下のパッケージが新たにインストールされます:
  postgresql postgresql-13 postgresql-client-13 postgresql-client-common
  postgresql-common sysstat
アップグレード: 0 個、新規インストール: 6 個、削除: 0 個、保留: 6 個。
15.6 MB のアーカイブを取得する必要があります。
この操作後に追加で 48.1 MB のディスク容量が消費されます。
続行しますか? [Y/n] Y</code></pre></div>



<p>　デフォルトではバージョン13が入るようです。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>(base) masaru@ASUS-TUF-Gaming:~$ sudo systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor pr&gt;
     Active: active (exited) since Mon 2021-04-05 17:36:05 JST; 6min ago
   Main PID: 116889 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 37748)
     Memory: 0B
     CGroup: /system.slice/postgresql.service

 4月 05 17:36:05 ASUS-TUF-Gaming systemd[1]: Starting PostgreSQL RDBMS...
 4月 05 17:36:05 ASUS-TUF-Gaming systemd[1]: Finished PostgreSQL RDBMS.</code></pre></div>



<p>無事動いているようです。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2>PgAdmin 4は未対応の模様</h2>



<p> PgAdminはまだUbuntu 21.04に未対応のようです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>(base) masaru@ASUS-TUF-Gaming:~$ sudo apt install pgadmin4
[sudo] masaru のパスワード: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
パッケージ pgadmin4 は使用できませんが、別のパッケージから参照されます。
これは、パッケージが欠落しているか、廃止されたか、または別のソース
からのみ利用可能であることを意味します。

E: パッケージ &#39;pgadmin4&#39; にはインストール候補がありません</code></pre></div>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2>LANからPostgreSQLに接続可能にする設定</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>(base) masaru@ASUS-TUF-Gaming:~$ sudo gedit /etc/postgresql/13/main/pg_hba.conf 
(base) masaru@ASUS-TUF-Gaming:~$ sudo systemctl restart postgresql</code></pre></div>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code># IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all         192.168.100.1/24            md5</code></pre></div>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2>ユーザーの作成</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>postgres=# create role masaru with superuser login;
select * from pg_shadow;

 usename  | usesysid | usecreatedb | usesuper | userepl | usebypassrls | passwd | valuntil | useconfig 
----------+----------+-------------+----------+---------+--------------+--------+----------+-----------
 postgres |       10 | t           | t        | t       | t            |        |          | 
 masaru   |    16384 | f           | t        | f       | f            |        |          | 
(2 rows)

postgres=# alter role masaru with password &#39;xxxxxxxxxxx&#39;;
ALTER ROLE</code></pre></div>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2>データベースの作成</h2>



<p>　『<a href="https://www.google.com/covid19/mobility/?hl=ja" target="_blank" rel="noreferrer noopener">Google コミュニティ モビリティ レポート</a>』のデータベースを作ってみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>(base) masaru@ASUS-TUF-Gaming:~$ createdb google_mobility</code></pre></div>



<p> 　DBeaverで接続します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="750" height="466" src="https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/dbeaver_connection.png?resize=750%2C466&#038;ssl=1" alt="" class="wp-image-195" srcset="https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/dbeaver_connection.png?resize=1024%2C636&amp;ssl=1 1024w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/dbeaver_connection.png?resize=300%2C186&amp;ssl=1 300w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/dbeaver_connection.png?resize=768%2C477&amp;ssl=1 768w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/dbeaver_connection.png?w=1320&amp;ssl=1 1320w" sizes="(max-width: 750px) 100vw, 750px" data-recalc-dims="1" /></figure>



<p>　DBeaverでSQL文を実行してテーブルを作成します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="750" height="458" src="https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/create_table.png?resize=750%2C458&#038;ssl=1" alt="" class="wp-image-196" srcset="https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/create_table.png?resize=1024%2C626&amp;ssl=1 1024w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/create_table.png?resize=300%2C183&amp;ssl=1 300w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/create_table.png?resize=768%2C469&amp;ssl=1 768w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/create_table.png?w=1437&amp;ssl=1 1437w" sizes="(max-width: 750px) 100vw, 750px" data-recalc-dims="1" /><figcaption>DBeaverでテーブルを作成する</figcaption></figure>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>create table google_mobility( 
	id SERIAL primary key, 
	country_region_code varchar(2) , 
	country_region varchar(255) , 
	sub_region_1 varchar(255) , 
	sub_region_2 varchar(255) , 
	metro_area varchar(255) , 
	iso_3166_2_code varchar(32) , 
	census_fips_code varchar(32) , 
	date date , 
	retail_and_recreation_percent_change_from_baseline integer , 
	grocery_and_pharmacy_percent_change_from_baseline integer , 
	parks_percent_change_from_baseline integer , 
	transit_stations_percent_change_from_baseline integer , 
	workplaces_percent_change_from_baseline integer , 
	residential_percent_change_from_baseline integer);</code></pre></div>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2>CSVデータのインポート</h2>



<p>　いよいよCSVのインポートです。DBeaverはCSVも格納先フォルダをデータベースとして登録してからPostgreSQLにインポートするのがお作法のようです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="750" height="458" src="https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/add_csv.png?resize=750%2C458&#038;ssl=1" alt="" class="wp-image-197" srcset="https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/add_csv.png?resize=1024%2C626&amp;ssl=1 1024w, https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/add_csv.png?resize=300%2C183&amp;ssl=1 300w, https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/add_csv.png?resize=768%2C469&amp;ssl=1 768w, https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/add_csv.png?w=1439&amp;ssl=1 1439w" sizes="(max-width: 750px) 100vw, 750px" data-recalc-dims="1" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="750" height="458" src="https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/select_csv.png?resize=750%2C458&#038;ssl=1" alt="" class="wp-image-199" srcset="https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/select_csv.png?resize=1024%2C626&amp;ssl=1 1024w, https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/select_csv.png?resize=300%2C183&amp;ssl=1 300w, https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/select_csv.png?resize=768%2C470&amp;ssl=1 768w, https://i2.wp.com/can.ne.jp/wp-content/uploads/2021/04/select_csv.png?w=1441&amp;ssl=1 1441w" sizes="(max-width: 750px) 100vw, 750px" data-recalc-dims="1" /></figure>



<p>　データベース上のテーブルとCSVでカラム名が一致していれば、マッピングで困ることはないようです。</p>



<p>　とは言え、Google Mobilityデータも短期間のうちにplace_idというカラムが増えており、オープンデータの扱いのやっかいさを実感します。さらにCSVの中身が壊れているとインポートの段階で苦しみます……<img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f4a6.png" alt="💦" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<figure class="wp-block-image size-large"><img loading="lazy" width="750" height="645" src="https://i1.wp.com/can.ne.jp/wp-content/uploads/2021/04/columns.png?resize=750%2C645&#038;ssl=1" alt="" class="wp-image-200" srcset="https://i1.wp.com/can.ne.jp/wp-content/uploads/2021/04/columns.png?w=757&amp;ssl=1 757w, https://i1.wp.com/can.ne.jp/wp-content/uploads/2021/04/columns.png?resize=300%2C258&amp;ssl=1 300w" sizes="(max-width: 750px) 100vw, 750px" data-recalc-dims="1" /></figure>



<p>　増えていたカラムはvarchar(32767)で格納されてしまっているので、varchar(32)に縮小します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select place_id from google_mobility limit 10;
alter table google_mobility alter column place_id type varchar(32);</code></pre></div>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2>SQL select文でデータ抽出</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>select count(*) from google_mobility;
select * from google_mobility
	where sub_region_1 = &#39;Tokyo&#39;
	order by date desc;</code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" width="750" height="383" src="https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/result.png?resize=750%2C383&#038;ssl=1" alt="" class="wp-image-204" srcset="https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/result.png?resize=1024%2C523&amp;ssl=1 1024w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/result.png?resize=300%2C153&amp;ssl=1 300w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/result.png?resize=768%2C392&amp;ssl=1 768w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/04/result.png?w=1119&amp;ssl=1 1119w" sizes="(max-width: 750px) 100vw, 750px" data-recalc-dims="1" /><figcaption>Google Community Mobility ReportからSQL select文でデータを抽出する</figcaption></figure>



<p>　4838804レコードから400ミリ秒ほどでselect文を実行できました。緊急事態宣言が解除された東京ですが、まだ交通、職場、小売店などでは自粛の影響が残っているようです。</p>
		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_not_liked"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="187"
					data-ulike-nonce="ac37d1c76b"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_187"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	<p><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=%2F2021%2F04%2F05%2Fubuntu-21-04%25e3%2581%25abpostgresql%25e3%2582%2592%25e3%2582%25a4%25e3%2583%25b3%25e3%2582%25b9%25e3%2583%2588%25e3%2583%25bc%25e3%2583%25ab%25e3%2581%2599%25e3%2582%258b%2F&amp;linkname=Ubuntu%2021.04%E3%81%ABPostgreSQL%2013%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=%2F2021%2F04%2F05%2Fubuntu-21-04%25e3%2581%25abpostgresql%25e3%2582%2592%25e3%2582%25a4%25e3%2583%25b3%25e3%2582%25b9%25e3%2583%2588%25e3%2583%25bc%25e3%2583%25ab%25e3%2581%2599%25e3%2582%258b%2F&amp;linkname=Ubuntu%2021.04%E3%81%ABPostgreSQL%2013%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=%2F2021%2F04%2F05%2Fubuntu-21-04%25e3%2581%25abpostgresql%25e3%2582%2592%25e3%2582%25a4%25e3%2583%25b3%25e3%2582%25b9%25e3%2583%2588%25e3%2583%25bc%25e3%2583%25ab%25e3%2581%2599%25e3%2582%258b%2F&amp;linkname=Ubuntu%2021.04%E3%81%ABPostgreSQL%2013%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook_messenger" href="https://www.addtoany.com/add_to/facebook_messenger?linkurl=%2F2021%2F04%2F05%2Fubuntu-21-04%25e3%2581%25abpostgresql%25e3%2582%2592%25e3%2582%25a4%25e3%2583%25b3%25e3%2582%25b9%25e3%2583%2588%25e3%2583%25bc%25e3%2583%25ab%25e3%2581%2599%25e3%2582%258b%2F&amp;linkname=Ubuntu%2021.04%E3%81%ABPostgreSQL%2013%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B" title="Messenger" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_copy_link" href="https://www.addtoany.com/add_to/copy_link?linkurl=%2F2021%2F04%2F05%2Fubuntu-21-04%25e3%2581%25abpostgresql%25e3%2582%2592%25e3%2582%25a4%25e3%2583%25b3%25e3%2582%25b9%25e3%2583%2588%25e3%2583%25bc%25e3%2583%25ab%25e3%2581%2599%25e3%2582%258b%2F&amp;linkname=Ubuntu%2021.04%E3%81%ABPostgreSQL%2013%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B" title="Copy Link" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=%2F2021%2F04%2F05%2Fubuntu-21-04%25e3%2581%25abpostgresql%25e3%2582%2592%25e3%2582%25a4%25e3%2583%25b3%25e3%2582%25b9%25e3%2583%2588%25e3%2583%25bc%25e3%2583%25ab%25e3%2581%2599%25e3%2582%258b%2F&#038;title=Ubuntu%2021.04%E3%81%ABPostgreSQL%2013%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B" data-a2a-url="/2021/04/05/ubuntu-21-04%e3%81%abpostgresql%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b/" data-a2a-title="Ubuntu 21.04にPostgreSQL 13をインストールする"></a></p><p>The post <a href="/2021/04/05/ubuntu-21-04%e3%81%abpostgresql%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b/">Ubuntu 21.04にPostgreSQL 13をインストールする</a> first appeared on <a href="/">MasaruのIT＆マーケティングBLOG  |  Info Tech & Marketing BLOG by Masaru</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>/2021/04/05/ubuntu-21-04%e3%81%abpostgresql%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">187</post-id>	</item>
		<item>
		<title>Ubuntu 21.04が待ち遠しい</title>
		<link>/2021/03/27/ubuntu-21-04%e3%81%8c%e5%be%85%e3%81%a1%e9%81%a0%e3%81%97%e3%81%84/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ubuntu-21-04%25e3%2581%258c%25e5%25be%2585%25e3%2581%25a1%25e9%2581%25a0%25e3%2581%2597%25e3%2581%2584</link>
					<comments>/2021/03/27/ubuntu-21-04%e3%81%8c%e5%be%85%e3%81%a1%e9%81%a0%e3%81%97%e3%81%84/#respond</comments>
		
		<dc:creator><![CDATA[masaru]]></dc:creator>
		<pubDate>Sat, 27 Mar 2021 03:23:41 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Keras]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ryzen]]></category>
		<category><![CDATA[Tensorflow]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Ubuntu 21.04]]></category>
		<category><![CDATA[機械学習]]></category>
		<guid isPermaLink="false">/?p=36</guid>

					<description><![CDATA[<p>　ASUSのノートPCを年明けにAmazonのセールで買いました。Ryzen 4600HとGTX 1650が載ったゲーミング仕様ですが、Linuxを入れる予定です。 　Linuxを入れるのはデータベースとデータ分析、Py&#8230; <a class="more-link" href="/2021/03/27/ubuntu-21-04%e3%81%8c%e5%be%85%e3%81%a1%e9%81%a0%e3%81%97%e3%81%84/">続きを読む <span class="screen-reader-text">Ubuntu 21.04が待ち遠しい</span></a></p>
<p>The post <a href="/2021/03/27/ubuntu-21-04%e3%81%8c%e5%be%85%e3%81%a1%e9%81%a0%e3%81%97%e3%81%84/">Ubuntu 21.04が待ち遠しい</a> first appeared on <a href="/">MasaruのIT＆マーケティングBLOG  |  Info Tech & Marketing BLOG by Masaru</a>.</p>]]></description>
										<content:encoded><![CDATA[<figure class="wp-block-image size-large"><img loading="lazy" width="750" height="563" src="https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/03/DSC_0826.jpg?resize=750%2C563&#038;ssl=1" alt="" class="wp-image-37" srcset="https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/03/DSC_0826.jpg?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/03/DSC_0826.jpg?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/03/DSC_0826.jpg?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/03/DSC_0826.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/03/DSC_0826.jpg?resize=1568%2C1176&amp;ssl=1 1568w, https://i0.wp.com/can.ne.jp/wp-content/uploads/2021/03/DSC_0826.jpg?w=1920&amp;ssl=1 1920w" sizes="(max-width: 750px) 100vw, 750px" data-recalc-dims="1" /><figcaption>Ubuntu 21.04 Daily Build</figcaption></figure>



<p>　ASUSのノートPCを年明けにAmazonのセールで買いました。Ryzen 4600HとGTX 1650が載ったゲーミング仕様ですが、Linuxを入れる予定です。</p>



<p>　Linuxを入れるのはデータベースとデータ分析、Python機械学習が目的です。PostgreSQLは6コアを使ってくれますし、Tensorflow/Kerasなどディープラーニングのフレームワークもnvidia-smiなどの設定がうまく行けばGPUの並列処理を使ってくれるはずです。</p>



<p>　しかし今はまだWindows 10のまま。常用しているUbuntu 20.04のLinuxカーネルがAMD Ryzen 4000系のAPUに未対応だからです。</p>



<p>　カーネルだけ更新して世間のTipsが使えなくなるのも嫌なので、2021年4月リリース予定のUbuntu 21.04に合わせてOSを入れ替える予定です。</p>



<p>　写真はDaily BuildをUSBメモリから起動したところ。AMDへの対応が遅れがちなLinuxですが、Linusも今ではAMDのThreadripperを愛用しているとのこと。このノートでUbuntuが安定稼働することに期待しています。</p>



<p>　このブログでは、Ubuntu 21.04のインストールから各種環境構築まで一連の過程を記事として掲載しようと思っています。</p>
		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_not_liked"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="36"
					data-ulike-nonce="79cbb9d39c"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_36"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	<p><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=%2F2021%2F03%2F27%2Fubuntu-21-04%25e3%2581%258c%25e5%25be%2585%25e3%2581%25a1%25e9%2581%25a0%25e3%2581%2597%25e3%2581%2584%2F&amp;linkname=Ubuntu%2021.04%E3%81%8C%E5%BE%85%E3%81%A1%E9%81%A0%E3%81%97%E3%81%84" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=%2F2021%2F03%2F27%2Fubuntu-21-04%25e3%2581%258c%25e5%25be%2585%25e3%2581%25a1%25e9%2581%25a0%25e3%2581%2597%25e3%2581%2584%2F&amp;linkname=Ubuntu%2021.04%E3%81%8C%E5%BE%85%E3%81%A1%E9%81%A0%E3%81%97%E3%81%84" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=%2F2021%2F03%2F27%2Fubuntu-21-04%25e3%2581%258c%25e5%25be%2585%25e3%2581%25a1%25e9%2581%25a0%25e3%2581%2597%25e3%2581%2584%2F&amp;linkname=Ubuntu%2021.04%E3%81%8C%E5%BE%85%E3%81%A1%E9%81%A0%E3%81%97%E3%81%84" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook_messenger" href="https://www.addtoany.com/add_to/facebook_messenger?linkurl=%2F2021%2F03%2F27%2Fubuntu-21-04%25e3%2581%258c%25e5%25be%2585%25e3%2581%25a1%25e9%2581%25a0%25e3%2581%2597%25e3%2581%2584%2F&amp;linkname=Ubuntu%2021.04%E3%81%8C%E5%BE%85%E3%81%A1%E9%81%A0%E3%81%97%E3%81%84" title="Messenger" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_copy_link" href="https://www.addtoany.com/add_to/copy_link?linkurl=%2F2021%2F03%2F27%2Fubuntu-21-04%25e3%2581%258c%25e5%25be%2585%25e3%2581%25a1%25e9%2581%25a0%25e3%2581%2597%25e3%2581%2584%2F&amp;linkname=Ubuntu%2021.04%E3%81%8C%E5%BE%85%E3%81%A1%E9%81%A0%E3%81%97%E3%81%84" title="Copy Link" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=%2F2021%2F03%2F27%2Fubuntu-21-04%25e3%2581%258c%25e5%25be%2585%25e3%2581%25a1%25e9%2581%25a0%25e3%2581%2597%25e3%2581%2584%2F&#038;title=Ubuntu%2021.04%E3%81%8C%E5%BE%85%E3%81%A1%E9%81%A0%E3%81%97%E3%81%84" data-a2a-url="/2021/03/27/ubuntu-21-04%e3%81%8c%e5%be%85%e3%81%a1%e9%81%a0%e3%81%97%e3%81%84/" data-a2a-title="Ubuntu 21.04が待ち遠しい"></a></p><p>The post <a href="/2021/03/27/ubuntu-21-04%e3%81%8c%e5%be%85%e3%81%a1%e9%81%a0%e3%81%97%e3%81%84/">Ubuntu 21.04が待ち遠しい</a> first appeared on <a href="/">MasaruのIT＆マーケティングBLOG  |  Info Tech & Marketing BLOG by Masaru</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>/2021/03/27/ubuntu-21-04%e3%81%8c%e5%be%85%e3%81%a1%e9%81%a0%e3%81%97%e3%81%84/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">36</post-id>	</item>
	</channel>
</rss>
