12 คะแนน โดย GN⁺ 2024-10-07 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องมือโอเพนซอร์สสำหรับการตรวจสอบข้อมูล, คิวรี, join, การนำเข้า และการส่งออก ซึ่งมีประโยชน์สำหรับการทำงานกับฐานข้อมูลและเอกสาร
  • ใช้ภาษาคิวรีชื่อ SLQ และรองรับแหล่งข้อมูลกับรูปแบบข้อมูลที่หลากหลาย

ฟีเจอร์หลัก

  • เปรียบเทียบตารางฐานข้อมูล: สามารถใช้คำสั่ง diff เพื่อเปรียบเทียบเมทาดาทาของแหล่งข้อมูลหรือค่าของแต่ละแถวได้
  • นำเข้าข้อมูลจาก Excel ไปยัง Postgres: สามารถแทรกเนื้อหาจากเวิร์กชีต Excel XLSX ลงในตาราง Postgres ใหม่ได้
  • ดูเมทาดาทาของฐานข้อมูล: สามารถใช้แฟล็ก --json เพื่อแสดงสคีมาและเมทาดาทาอื่น ๆ ในรูปแบบ JSON ได้
  • ดึงชื่อคอลัมน์ทั้งหมดจากตาราง MySQL: สามารถแยกชื่อคอลัมน์ของตารางที่ต้องการได้อย่างง่ายดาย
  • รันคิวรีบน SQL Server และแทรกผลลัพธ์ลงใน SQLite: สามารถรันคิวรีจาก SQL Server และนำผลลัพธ์ไปแทรกใน SQLite ได้
  • ส่งออกตารางฐานข้อมูลทั้งหมดเป็น CSV: สามารถใช้เมทาดาทาแบบ JSON เพื่อดึงชื่อตาราง และส่งออกแต่ละตารางเป็นไฟล์ CSV ได้

คำสั่งสำหรับแหล่งข้อมูล

  • เพิ่มและจัดการแหล่งข้อมูล: มีคำสั่งสำหรับเพิ่ม, เปิดใช้งาน, ย้าย, แสดงรายการ, จัดกลุ่ม, ping หรือเอาแหล่งข้อมูลออก
  • คำสั่งเกี่ยวกับตารางฐานข้อมูล: มีคำสั่งที่สะดวก เช่น การคัดลอก, ตัด หรือลบตาราง

คิวรี JSONL

  • รองรับรูปแบบ JSONL: สามารถคิวรีไฟล์ล็อกในรูปแบบ JSON Lines ได้

แหล่งข้อมูล SQL และรูปแบบเอาต์พุต

  • ฐานข้อมูลที่รองรับ: รองรับ Postgres, SQLite, MySQL, MariaDB, SQL Server, Azure SQL Edge และอื่น ๆ
  • แหล่งข้อมูลอื่น ๆ: สามารถนำเข้าข้อมูลจากรูปแบบต่าง ๆ เช่น Excel XLSX, CSV, TSV, JSON, JSONA, JSONL
  • รูปแบบเอาต์พุต: รองรับการส่งออกเป็นการแทรกลงฐานข้อมูล SQL, Excel XLSX, CSV, TSV, JSON, JSONL, JSONA, XML, HTML, Markdown, Raw และรูปแบบอื่น ๆ

สรุปโดย GN⁺

  • sq เป็นเครื่องมือทรงพลังสำหรับการจัดการข้อมูลในฐานข้อมูลและเอกสาร โดยรองรับแหล่งข้อมูลและรูปแบบที่หลากหลาย จึงให้ความยืดหยุ่นสูงในการประมวลผลข้อมูล
  • สามารถทำให้งานด้านข้อมูลง่ายขึ้นผ่านความสามารถต่าง ๆ เช่น การย้ายข้อมูลระหว่างฐานข้อมูล, การจัดการเมทาดาทา และการแปลงข้อมูลเป็นหลายรูปแบบ
  • มีประโยชน์สำหรับนักพัฒนาที่สนใจการจัดการฐานข้อมูลและการประมวลผลข้อมูล โดยเฉพาะในโปรเจกต์ที่ต้องทำงานกับแหล่งข้อมูลหลากหลาย
  • เครื่องมือที่มีฟังก์ชันคล้ายกัน ได้แก่ jq, pandas, Apache Drill

2 ความคิดเห็น

 
xguru 2024-10-08

SQ - swiss-army knife for data

เคยมีการแนะนำไปเมื่อประมาณสามปีครึ่งก่อน แต่ระหว่างนั้นก็มีฟีเจอร์เพิ่มขึ้นมาเยอะเลยครับ

 
GN⁺ 2024-10-07
ความคิดเห็นบน Hacker News
  • คิดว่าภาษาคิวรีของ JQ ไม่ได้มีเสน่ห์เป็นพิเศษนัก ไม่เข้าใจว่าทำไมเวลาจะถามข้อมูลจากฐานข้อมูลถึงต้องเลือกใช้ภาษาคล้าย XPATH ของ JQ
  • สงสัยว่ามีเครื่องมือที่รับอินพุตเป็น JSON แล้วคิวรีด้วยไวยากรณ์ SQL ได้หรือไม่ ซึ่งน่าจะดึงดูดผู้ใช้สายดั้งเดิมได้มากกว่า
  • เสนอว่าอาจแพ็กเกจ Python เป็นไฟล์ปฏิบัติการเดี่ยว และทำ symbolic link แอปพลิเคชันกับโมดูลในสไตล์ Unix
    • นักพัฒนาจำนวนมากให้ความสำคัญกับความสวยงามเป็นอันดับต่ำสุดเมื่อเลือกเครื่องมือ ปัจจัยอื่นสำคัญกว่าทั้งแพ็กเกจจิ้งหรือความสอดคล้องด้านความสวยงาม
  • รู้สึกว่าเดโมพึ่งพาสถานะมากเกินไป จุดแข็งที่แท้จริงของ jq คือความน่าเชื่อถือและความสามารถในการเข้าใจพฤติกรรมของมัน ซึ่งเป็นสิ่งที่เครื่องมือแบบพึ่งพาสถานะขาดไป
  • มองไม่เห็นว่ามีอะไรที่ทำไม่ได้ด้วย SQL มาตรฐานและเครื่องมือ CLI การเรียน SQL มาตรฐานน่าจะให้ความรู้ที่นำกลับไปใช้ซ้ำได้มากกว่า
  • เครื่องมือใหม่เป็นเรื่องดีเสมอ ถึงจะไม่กลายเป็นกระแสหลัก การสำรวจวิธีใหม่ๆ ในการจัดการฐานข้อมูลก็ยังเป็นสิ่งที่ดีเสมอ
  • ชอบ sq ใช้สะดวกสำหรับทำงานง่ายๆ กับ DB อย่างรวดเร็วและส่งออกเป็น CSV หรือ JSON เพียงแต่อยากให้ภาษาคิวรีของ sq (SLQ) รองรับการจับคู่สตริงบางส่วนแบบเดียวกับ SQL เช่น ... LIKE "SOME_STRING%" โดยสามารถเรียกใช้ SQL โดยตรงเองได้
  • อ่านมาว่า Postgres จะเพิ่มความสามารถในการส่งออก JSON และ .wrangle | .data ทำงานได้บน iPhone 13 mini
  • ถ้ามีเครื่องมือนี้ตอนที่ใช้ฐานข้อมูล SQL ก็คงดี
  • อยากให้ Zeek log รองรับ TSV