🦆 💏 🐘 اجازه دهید PostgreSQL و duckdb “sql” را با هم بگذارید

Summarize this content to 400 words in Persian Lang
❔ درباره
بنابراین شما هم یکی از طرفداران PostgreSQL هستید و هم اخیراً duckdb پذیرندهشما هر دو پایگاه داده را برای آنها دوست دارید نقاط قوت و اکوسیستم ها… و تعجب می کنم که چگونه می شود
امکان ارسال یکپارچه داده ها از/به یکدیگر پایگاه داده ها… بدون نیاز به کدنویسی، منظور من است چیزی بیشتر از بازی نیست sql shell دستورات در ترمینال
: بدون پایتون، بدون جاوا،…
👉 خب این دقیقاً همان چیزی است که من در این پست در مورد آن صحبت خواهم کرد به لطف:
🤔 اما چرا این پست؟
3 دلیل اصلی این مقاله و چرایی کشیدن/قرار دادن از آن PostgreSQL/duckdb در این مرحله عبارتند از:
DuckDB
PostgreSQL
مدل پایگاه داده
پایگاه داده ستونی
پایگاه داده رابطه ای
مجوز
با
مانند BSD
بدون سرور
بله
خیر
🎯 کاری که ما انجام خواهیم داد
ما فقط از ترمینال:
🐋 نصب و راه اندازی یک پایگاه داده کانتینری PostgreSQL (با Podman)
🐘 ایجاد کنید یک پایگاه داده
🔁 ایجاد و تغذیه کنید یک میز کوچک
🪄 را بخوانید psql جدول از duckdb
🗜️ صادرات psql جدول به فایل پارکت
🔬 بازرسی کنید parquet فایل با parquet-cli
همچنین ما انجام خواهیم داد حرکت معکوس :
یک جدول در PostgreSQL از داخل ایجاد کنید duckdb
تست محتویات جدول از sql
🍿 نسخه ی نمایشی
📜 shell اسکریپت ها
یک نمونه PostgreSQL را نصب و راهاندازی کنید:
export PGPASSWORD=mysecretpassword
# Boot a postgresql instance
podman run –name postgres -e POSTGRES_PASSWORD=$PGPASSWORD -d\
-p 5432:5432 docker.io/library/postgres
# Check container status
podman ps -a
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
نصب کنید psql بنابراین می توانیم از خارج از Contenair به PostgrSQL برسیم:
# Install `psql` on the host so the database can be accessed
# from outside de container
sudo apt install -y postgresql-client
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اکنون، چند شی PostgreSQL ایجاد کنید:
# Create a demo database
psql -h localhost -p 5432 -U postgres -c “CREATE DATABASE demo;”
# Create a table
psql -h localhost -p 5432 -U postgres -d demo\
-c “CREATE table customers(id varchar primary key);”
# Feed the PostgreSQL table with some data
psql -h localhost -p 5432 -U postgres -d demo\
-c “insert into customers values \
(‘Duffy duck’),\
(‘Daisy Duck’),\
(‘Donald Duck’),\
(‘Ludwig Von Drake’);”
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
نصب کنید duckdb :
# (Quick and dirty) duckdb install
wget https://github.com/duckdb/duckdb/releases/download/v1.0.0/duckdb_cli-linux-amd64.zip
unzip duckdb_cli-linux-amd64.zip
cp duckdb /usr/bin/
rm duckdb duckdb_cli-linux-amd64.zip
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
حالا کارهای جالب را انجام دهید…
دسترسی به پایگاه داده PostgreSQL از duckdb
بیایید از پایگاه داده postgres برسیم duckdb :
duckdb -c “ATTACH ‘dbname=demo user=postgres password=mysecretpassword host=127.0.0.1’\
AS db (TYPE POSTGRES, READ_ONLY);
show all tables;
select * from db.customers;
COPY db.customers TO ‘db.customers.parquet’ (FORMAT PARQUET);”
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
… سپس خروجی را بررسی کنید parquet فایل:
ls -ltr
file db.customers.parquet
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
… و نتیجه را بخوانید parquet فایل از duckdb :
duckdb -c “select * from ‘db.customers.parquet’;”
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
نتیجه آزمایش parquet فایل با parquet-cli :
pip install parquet-cli
parq -h
parq db.customers.parquet –count
parq db.customers.parquet –head
parq db.customers.parquet –tail
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
duckdb ➡️ PostgreSQL
بیایید:
“ضمیمه” نمونه راه دور PostgreSQL از duckdb زمان اجرا
ایجاد کنید یک میز
خوراک جدول
انتخاب کنید محتویات جدول از psql
duckdb -c “ATTACH ‘dbname=demo user=postgres password=mysecretpassword host=127.0.0.1’\
AS db (TYPE POSTGRES);\
create table db.heroes(name varchar primary key);\
insert into db.heroes values\
(‘Dumbo’),\
(‘Man-Elephant’),\
(‘Tantra’),\
(‘Elephant Man’),\
(‘The Elephantmen’),\
(‘Mammomax’) ;
”
psql -h localhost -p 5432 -U postgres -d demo\
-c “select * from heroes;”
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
⚖️ بیشتر در مورد DuckDB در مقابل PostgreSQL
در زیر این تفکیک بسیار مصنوعی از هجوم داده را ببینید:
❔ درباره
بنابراین شما هم یکی از طرفداران PostgreSQL هستید و هم اخیراً duckdb
پذیرنده
شما هر دو پایگاه داده را برای آنها دوست دارید نقاط قوت و اکوسیستم ها… و تعجب می کنم که چگونه می شود
امکان ارسال یکپارچه داده ها از/به یکدیگر پایگاه داده ها… بدون نیاز به کدنویسی، منظور من است چیزی بیشتر از بازی نیست
sql shell
دستورات در ترمینال
: بدون پایتون، بدون جاوا،…
👉 خب این دقیقاً همان چیزی است که من در این پست در مورد آن صحبت خواهم کرد به لطف:
🤔 اما چرا این پست؟
3 دلیل اصلی این مقاله و چرایی کشیدن/قرار دادن از آن PostgreSQL
/duckdb
در این مرحله عبارتند از:
DuckDB |
PostgreSQL |
|
---|---|---|
مدل پایگاه داده | پایگاه داده ستونی | پایگاه داده رابطه ای |
مجوز | با | مانند BSD |
بدون سرور | بله | خیر |
🎯 کاری که ما انجام خواهیم داد
ما فقط از ترمینال:
- 🐋 نصب و راه اندازی یک پایگاه داده کانتینری PostgreSQL (با Podman)
- 🐘 ایجاد کنید یک پایگاه داده
- 🔁 ایجاد و تغذیه کنید یک میز کوچک
-
🪄 را بخوانید
psql
جدول ازduckdb
-
🗜️ صادرات
psql
جدول به فایل پارکت -
🔬 بازرسی کنید
parquet
فایل باparquet-cli
همچنین ما انجام خواهیم داد حرکت معکوس :
- یک جدول در PostgreSQL از داخل ایجاد کنید
duckdb
- تست محتویات جدول از
sql
🍿 نسخه ی نمایشی
https://www.youtube.com/watch?v=2TX8xjZkrz8
📜 shell
اسکریپت ها
یک نمونه PostgreSQL را نصب و راهاندازی کنید:
export PGPASSWORD=mysecretpassword
# Boot a postgresql instance
podman run --name postgres -e POSTGRES_PASSWORD=$PGPASSWORD -d\
-p 5432:5432 docker.io/library/postgres
# Check container status
podman ps -a
نصب کنید psql
بنابراین می توانیم از خارج از Contenair به PostgrSQL برسیم:
# Install `psql` on the host so the database can be accessed
# from outside de container
sudo apt install -y postgresql-client
اکنون، چند شی PostgreSQL ایجاد کنید:
# Create a demo database
psql -h localhost -p 5432 -U postgres -c "CREATE DATABASE demo;"
# Create a table
psql -h localhost -p 5432 -U postgres -d demo\
-c "CREATE table customers(id varchar primary key);"
# Feed the PostgreSQL table with some data
psql -h localhost -p 5432 -U postgres -d demo\
-c "insert into customers values \
('Duffy duck'),\
('Daisy Duck'),\
('Donald Duck'),\
('Ludwig Von Drake');"
نصب کنید duckdb
:
# (Quick and dirty) duckdb install
wget https://github.com/duckdb/duckdb/releases/download/v1.0.0/duckdb_cli-linux-amd64.zip
unzip duckdb_cli-linux-amd64.zip
cp duckdb /usr/bin/
rm duckdb duckdb_cli-linux-amd64.zip
حالا کارهای جالب را انجام دهید…
دسترسی به پایگاه داده PostgreSQL از duckdb
بیایید از پایگاه داده postgres برسیم duckdb
:
duckdb -c "ATTACH 'dbname=demo user=postgres password=mysecretpassword host=127.0.0.1'\
AS db (TYPE POSTGRES, READ_ONLY);
show all tables;
select * from db.customers;
COPY db.customers TO 'db.customers.parquet' (FORMAT PARQUET);"
… سپس خروجی را بررسی کنید parquet
فایل:
ls -ltr
file db.customers.parquet
… و نتیجه را بخوانید parquet
فایل از duckdb
:
duckdb -c "select * from 'db.customers.parquet';"
نتیجه آزمایش parquet
فایل با parquet-cli
:
pip install parquet-cli
parq -h
parq db.customers.parquet --count
parq db.customers.parquet --head
parq db.customers.parquet --tail
duckdb
➡️ PostgreSQL
بیایید:
-
“ضمیمه” نمونه راه دور PostgreSQL از
duckdb
زمان اجرا - ایجاد کنید یک میز
- خوراک جدول
-
انتخاب کنید محتویات جدول از
psql
duckdb -c "ATTACH 'dbname=demo user=postgres password=mysecretpassword host=127.0.0.1'\
AS db (TYPE POSTGRES);\
create table db.heroes(name varchar primary key);\
insert into db.heroes values\
('Dumbo'),\
('Man-Elephant'),\
('Tantra'),\
('Elephant Man'),\
('The Elephantmen'),\
('Mammomax') ;
"
psql -h localhost -p 5432 -U postgres -d demo\
-c "select * from heroes;"
⚖️ بیشتر در مورد DuckDB
در مقابل PostgreSQL
در زیر این تفکیک بسیار مصنوعی از هجوم داده را ببینید: