คำถามติดแท็ก postgresql

PostgreSQL เป็นระบบจัดการฐานข้อมูลเชิงวัตถุแบบโอเพ่นซอร์ส (ORDBMS) ที่พร้อมใช้งานสำหรับแพลตฟอร์มหลักทั้งหมดรวมถึง Linux, UNIX, Windows และ OS X โปรดพูดถึง Postgres รุ่นที่แน่นอนของคุณเมื่อถามคำถาม คำถามเกี่ยวกับการดูแลระบบหรือคุณสมบัติขั้นสูงจะส่งตรงไปที่ dba.stackexchange.com

1
การคำนวณผลรวมสะสมใน PostgreSQL
ฉันต้องการค้นหาจำนวนฟิลด์สะสมหรือกำลังทำงานและแทรกจากการจัดเตรียมเป็นตาราง โครงสร้างการแสดงละครของฉันเป็นดังนี้: ea_month id amount ea_year circle_id April 92570 1000 2014 1 April 92571 3000 2014 2 April 92572 2000 2014 3 March 92573 3000 2014 1 March 92574 2500 2014 2 March 92575 3750 2014 3 February 92576 2000 2014 1 February 92577 2500 2014 2 February 92578 1450 …

18
ข้อผิดพลาด: ไม่มีโมดูลชื่อ psycopg2.extensions
ฉันกำลังพยายามที่จะตั้งค่าฐานข้อมูล PostgreSQL สำหรับโครงการ Django ของฉันซึ่งฉันเชื่อว่าฉันได้ทำในขณะนี้ต้องขอบคุณการตอบคำถามสุดท้ายของฉันปัญหาการตั้งค่าฐานข้อมูล PostgreSQL สำหรับโครงการ ตอนนี้ฉันพยายามเรียกใช้คำสั่ง 'python Manage.py runningerver' ใน Terminal เพื่อให้ localhost ของฉันขึ้น แต่เมื่อฉันรันคำสั่งฉันเห็นการตอบสนองนี้ ... Error: No module named psycopg2.extensions ฉันไม่แน่ใจว่านี่หมายถึงอะไร - ฉันพยายามดาวน์โหลด psycopg2 แต่ดูเหมือนจะหาวิธีดาวน์โหลด psycopg2 โดยใช้ homebrew ไม่ได้ ฉันได้ลอง easy_install ติดตั้ง pip และ sudo แล้ว แต่กลับมีข้อผิดพลาดทั้งหมดเช่นนี้ ... Downloading http://www.psycopg.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.5.tar.gz Processing psycopg2-2.4.5.tar.gz Writing /tmp/easy_install-l7Qi62/psycopg2-2.4.5/setup.cfg Running psycopg2-2.4.5/setup.py -q …

6
คัดลอกตาราง (รวมถึงดัชนี) ใน postgres
ฉันมีโต๊ะ postgres ฉันต้องการลบข้อมูลบางส่วนออก ฉันจะสร้างตารางชั่วคราวคัดลอกข้อมูลสร้างดัชนีใหม่และลบแถวที่ฉันต้องการ ฉันไม่สามารถลบข้อมูลจากตารางต้นฉบับได้เนื่องจากตารางต้นฉบับนี้เป็นแหล่งที่มาของข้อมูล ในกรณีหนึ่งฉันต้องการผลลัพธ์บางอย่างที่ขึ้นอยู่กับการลบ X ในอีกกรณีหนึ่งฉันจะต้องลบ Y ดังนั้นฉันต้องการให้ข้อมูลดั้งเดิมทั้งหมดอยู่รอบ ๆ และพร้อมใช้งานเสมอ อย่างไรก็ตามดูเหมือนว่าจะโง่เล็กน้อยที่จะสร้างตารางขึ้นมาใหม่และคัดลอกอีกครั้งและสร้างดัชนีใหม่ มีอยู่แล้วใน postgres หรือไม่ที่จะบอกว่า "ฉันต้องการสำเนาของตารางนี้รวมถึงโครงสร้างข้อมูลและดัชนี" น่าเสียดายที่ PostgreSQL ไม่มี "CREATE TABLE .. LIKE X INCLUDING INDEXES"

3
PostgreSQL 9.2 row_to_json () พร้อมการรวมที่ซ้อนกัน
ฉันพยายามแมปผลลัพธ์ของrow_to_json()คิวรีกับ JSON โดยใช้ฟังก์ชันที่เพิ่มใน PostgreSQL 9.2 ฉันมีปัญหาในการหาวิธีที่ดีที่สุดในการแสดงแถวที่รวมเป็นวัตถุซ้อนกัน (ความสัมพันธ์ 1: 1) นี่คือสิ่งที่ฉันได้ลอง (รหัสการตั้งค่า: ตารางข้อมูลตัวอย่างตามด้วยแบบสอบถาม): -- some test tables to start out with: create table role_duties ( id serial primary key, name varchar ); create table user_roles ( id serial primary key, name varchar, description varchar, duty_id int, foreign key (duty_id) references role_duties(id) …

5
วิธีการแก้ไข“ ข้อผิดพลาด: คอลัมน์ c.relhasoids ไม่มีอยู่” ใน Postgres?
ฉันพยายามสร้างคำสั่งTABLEใน Postgresql หลังจากสร้างตารางแล้วถ้าฉันชกในชื่อตารางTABLE ก็ใช้งานได้ แต่ผมเจาะใน\ d ชื่อตารางผมให้ได้รับข้อผิดพลาดด้านล่าง ERROR: column c.relhasoids does not exist LINE 1: ...riggers, c.relrowsecurity, c.relforcerowsecurity, c.relhasoi... ฉันพยายามDROP DATABASE ชื่อตารางสร้างฐานข้อมูลขึ้นใหม่และสร้างตารางอีกครั้งหลายครั้ง แต่มันไม่ทำงาน ข้อเสนอแนะใด ๆ ที่จะได้รับการชื่นชม! ขอบคุณ.
33 postgresql 

3
ไปป์ไลน์ CI / CD ที่มี PostgreSQL ล้มเหลวด้วยข้อผิดพลาด“ ฐานข้อมูลไม่ได้กำหนดค่าเริ่มต้นและไม่ได้ระบุรหัสผ่านของผู้ใช้ระดับสูง”
ฉันใช้ Bitbucket ไพพ์ไลน์กับ PosgreSQL สำหรับ CI / CD ตามที่อธิบายไว้ในเอกสารนี้บริการ PostgreSQL ได้รับการอธิบายในbitbucket-pipelines.ymlลักษณะนี้: definitions: services: postgres: image: postgres:9.6-alpine มันใช้งานได้ดีจนถึงตอนนี้ แต่ท่อส่งล่าสุดทั้งหมดของฉันล้มเหลวโดยมีข้อผิดพลาดดังต่อไปนี้: Error: Database is uninitialized and superuser password is not specified. You must specify POSTGRES_PASSWORD for the superuser. Use "-e POSTGRES_PASSWORD=password" to set it in "docker run". You may also use POSTGRES_HOST_AUTH_METHOD=trust to …

1
การเขียนมากกว่า 50 ล้านจาก Pyspark df ไปยัง PostgresSQL ซึ่งเป็นวิธีการที่มีประสิทธิภาพที่สุด
อะไรจะเป็นวิธีที่มีประสิทธิภาพมากที่สุดในการแทรกเรคคอร์ดนับล้านบันทึกว่า 50 ล้านจาก Spark dataframe ไปยัง Postgres Tables ฉันได้ทำสิ่งนี้ตั้งแต่ประกายไปจนถึง MSSQL ในอดีตโดยใช้ประโยชน์จากการคัดลอกจำนวนมากและตัวเลือกขนาดแบทช์ซึ่งก็ประสบความสำเร็จเช่นกัน มีบางอย่างที่คล้ายกันที่สามารถอยู่ที่นี่สำหรับ Postgres ได้หรือไม่ เพิ่มรหัสฉันได้ลองและเวลาที่ใช้ในการเรียกใช้กระบวนการ: def inserter(): start = timer() sql_res.write.format("jdbc").option("numPartitions","5").option("batchsize","200000")\ .option("url", "jdbc:postgresql://xyz.com:5435/abc_db") \ .option("dbtable", "public.full_load").option("user", "root").option("password", "password").save() end = timer() print(timedelta(seconds=end-start)) inserter() ดังนั้นผมจึงไม่ได้วิธีการดังกล่าวข้างต้น 10 ล้านแผ่นและมี 5 เชื่อมต่อแบบขนานตามที่ระบุในnumPartitionsและยังพยายามขนาดชุดของ 200k เวลาทั้งหมดที่ใช้ในกระบวนการคือ0: 14: 05.760926 (สิบสี่นาทีและห้าวินาที) มีวิธีอื่นที่มีประสิทธิภาพซึ่งจะลดเวลาหรือไม่? ขนาดแบทช์ที่มีประสิทธิภาพหรือเหมาะสมที่สุดที่ฉันสามารถใช้ได้คืออะไร การเพิ่มขนาดชุดของฉันจะทำงานเร็วขึ้นหรือไม่ หรือเปิดการเชื่อมต่อที่หลากหลายเช่น> 5 ช่วยให้กระบวนการเร็วขึ้นหรือไม่ บนเฉลี่ย …

1
วิธีเชื่อมต่อกับ Traefik TCP Services ที่เปิดใช้งานการกำหนดค่า TLS ได้อย่างไร
ฉันกำลังพยายามกำหนดค่าTraefikเพื่อให้ฉันสามารถเข้าถึงบริการผ่านชื่อโดเมนและฉันไม่จำเป็นต้องตั้งค่าพอร์ตอื่น ยกตัวอย่างเช่นสองบริการ MongoDB ทั้งในพอร์ตเริ่มต้น แต่ในโดเมนที่แตกต่างกันและexample.localhost example2.localhostตัวอย่างนี้ใช้ได้เฉพาะ ฉันหมายถึงกรณีอื่นอาจใช้ได้ แต่ฉันไม่สามารถเชื่อมต่อกับพวกเขาและฉันไม่เข้าใจว่าปัญหาคืออะไร นี่อาจไม่เป็นปัญหากับ Traefik ฉันได้เตรียมที่เก็บพร้อมตัวอย่างที่ใช้งานได้ คุณเพียงแค่ต้องสร้างใบรับรองของคุณเองด้วย mkcert หน้าเว็บที่example.localhostส่งคืน403 Forbiddenข้อผิดพลาด แต่คุณไม่ควรกังวลเพราะวัตถุประสงค์ของการกำหนดค่านี้เพื่อแสดงว่า SSL ใช้งานได้ (กุญแจล็อคสถานะสีเขียว) 403จึงไม่มุ่งเน้นไปที่ การเชื่อมต่อ SSL กับmongoบริการใช้งานได้เท่านั้น ฉันทดสอบด้วยโปรแกรมRobo 3T หลังจากเลือกการเชื่อมต่อ SSL แล้วให้เปิดโฮสต์example.localhostและเลือกใบรับรองสำหรับการเชื่อมต่อที่ลงชื่อด้วยตนเอง (หรือเป็นของตัวเอง) และนั่นคือสิ่งเดียวที่ทำงานเช่นนั้น การเชื่อมต่อกับredis( Redis Desktop Manager ) และpgsql( PhpStorm , DBeaver , DbVisualizer ) ไม่ทำงานไม่ว่าฉันจะให้ใบรับรองหรือไม่ก็ตาม ฉันไม่ส่งต่อ SSL ไปยังบริการฉันเชื่อมต่อกับ Traefik เท่านั้น ฉันใช้เวลานานหลายชั่วโมงกับมัน ฉันค้นหาในอินเทอร์เน็ต …

4
JPA inheritance @EntityGraph มีการเชื่อมโยงทางเลือกของคลาสย่อย
ด้วยรูปแบบโดเมนต่อไปนี้ฉันต้องการโหลดAnswers ทั้งหมดรวมถึงValues และ sub-children ที่เกี่ยวข้องและวางลงในAnswerDTOเพื่อแปลงเป็น JSON ฉันมีวิธีการแก้ปัญหาการทำงาน แต่มันทนทุกข์ทรมานจากปัญหา N + 1 @EntityGraphที่ฉันต้องการที่จะกำจัดโดยใช้เฉพาะกิจ LAZYสมาคมทั้งหมดมีการกำหนดค่า @Query("SELECT a FROM Answer a") @EntityGraph(attributePaths = {"value"}) public List<Answer> findAll(); ใช้ ad-hoc @EntityGraphบนRepositoryวิธีการที่ฉันสามารถมั่นใจได้ว่าค่าถูกดึงมาล่วงหน้าเพื่อป้องกัน N + 1 ในการAnswer->Valueเชื่อมโยง ในขณะที่ผลลัพธ์ของฉันดีมีปัญหาอีก N + 1 เพราะขี้เกียจโหลดความselectedสัมพันธ์ของMCValues ใช้สิ่งนี้ @EntityGraph(attributePaths = {"value.selected"}) ล้มเหลวเนื่องจากselectedฟิลด์เป็นส่วนหนึ่งของValueเอนทิตีบางส่วนเท่านั้น: Unable to locate Attribute with the the given name …

3
เป็นไปได้ไหมที่จะมีพูลการเชื่อมต่อฐานข้อมูลหลายตัวในรางเพื่อสลับไปมา?
พื้นหลังเล็กน้อย ฉันใช้พลอยอพาร์ทเม้นท์เพื่อเรียกใช้แอพหลายผู้เช่ามาหลายปีแล้ว ตอนนี้เมื่อเร็ว ๆ นี้ความต้องการในการขยายฐานข้อมูลออกไปยังโฮสต์ที่แยกต่างหากได้มาถึงแล้วเซิร์ฟเวอร์ db ก็ไม่สามารถติดตามได้อีกต่อไป (ทั้งการอ่านและการเขียนมีมากเกินไป) - และใช่ฉันปรับขนาดฮาร์ดแวร์ให้สูงสุด ฮาร์ดแวร์ 64 คอร์, 12 Nvm-e ไดรฟ์ในการโจมตี 10, 384Gb ram เป็นต้น) ฉันกำลังพิจารณาที่จะทำสิ่งนี้ต่อผู้เช่า (1 tenant = 1 การเชื่อมต่อฐานข้อมูล config / pool) เพราะนั่นจะเป็นวิธีที่ "ง่าย" และมีประสิทธิภาพในการเพิ่มnumber-of-tenantsความจุได้มากขึ้นโดยไม่ต้องเปลี่ยนรหัสแอปพลิเคชัน ตอนนี้ฉันกำลังเรียกใช้ rails 4.2 atm. และอีกไม่นานจะอัพเกรดเป็น 5.2 ฉันเห็นว่า Rails 6 เพิ่มการสนับสนุนสำหรับคำจำกัดความการเชื่อมต่อต่อโมเดลอย่างไรก็ตามนั่นไม่ใช่สิ่งที่ฉันต้องการจริงๆเพราะฉันมี schema ฐานข้อมูลแบบมิเรอร์ทั้งหมดสำหรับผู้เช่า 20 คนของฉัน โดยทั่วไปฉันจะสลับ "ฐานข้อมูล" ต่อคำขอ (เป็นมิดเดิลแวร์) …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.