การเปิดเผยข้อมูลเมตาของ Hive ใน Hive นั้นเอง

ฉันคาดหวังว่าสิ่งนี้จะเกิดขึ้น แต่ก็ดูเหมือนจะไม่เป็นเช่นนั้น Hive จะไม่เปิดเผยข้อมูลเมตาของตัวเองภายในสภาพแวดล้อม ตัวอย่างเช่น เช่นเดียวกับ Oracle อนุญาตให้คุณใช้ "user_tables" สำหรับตารางที่คุณสร้างขึ้น

ฉันเข้าใจและชื่นชมความจริงที่ว่าข้อมูลเมตาของไฮฟ์ถูกจัดเก็บไว้ภายนอกใน RDBMS แต่ในฐานะผู้ใช้ที่สร้างแบบสอบถามประเภทต่างๆ การเข้าถึงข้อมูลเมตาตามบริบทของสภาพแวดล้อมที่ฉันทำงานอยู่จะเป็นประโยชน์

เนื่องจาก HCatalog เปิดเผยข้อมูลเมตาให้กับใครก็ตามที่เต็มใจ ทำไมไฮฟ์เอ็นจิ้นไม่สามารถรับข้อมูลเดียวกันและปล่อยให้มองเห็นได้!

ฉันรู้ถึงความท้าทายบางประการที่อาจเกิดขึ้นระหว่างการดำเนินการนี้ แต่สิ่งที่ฉันถามคือ "มีกระแสงานใดบ้างที่กระตือรือร้นเพื่อให้บรรลุสิ่งที่คล้ายกันนี้หรือไม่"

ในฐานะผู้ใช้ ฉันต้องการมัน


person Raghav    schedule 12.04.2018    source แหล่งที่มา


คำตอบ (2)


Hive เวอร์ชัน 3.0.0 เปิดตัวฐานข้อมูล information_schema เองใน hive ที่ที่เราสามารถสำรวจข้อมูลเมตาพื้นฐานของ Hive นอกจากนี้ยังมีฐานข้อมูลอื่นที่เรียกว่า sys และมีข้อมูลที่เกี่ยวข้องกับข้อมูลเมตาทั้งหมด

คุณสามารถดูลิงค์ต่อไปนี้สำหรับสิ่งนี้

https://issues.apache.org/jira/browse/HIVE-1010

person Pash0002    schedule 24.12.2020

คุณเขียนว่า: "ฉันเข้าใจและซาบซึ้งที่ข้อมูลเมตาของกลุ่มถูกเก็บไว้ภายนอกใน RDBMS" จากนั้นลองใช้ตัวจัดการที่เก็บข้อมูล JDBC: https://github.com/qubole/Hive-JDBC-Storage-Handler

คุณสามารถสร้างตารางใน Hive ได้เหมือนในตัวอย่างนี้ และสืบค้นได้เหมือนกับตาราง Hive อื่นๆ:

DROP TABLE HiveTable;
CREATE EXTERNAL TABLE HiveTable(
  id INT,
  id_double DOUBLE,
  names STRING,
  test INT
)
STORED BY 'org.apache.hadoop.hive.jdbc.storagehandler.JdbcStorageHandler'
TBLPROPERTIES (
  "mapred.jdbc.driver.class"="com.mysql.jdbc.Driver",
  "mapred.jdbc.url"="jdbc:mysql://localhost:3306/rstore",
  "mapred.jdbc.username"="root",
  "mapred.jdbc.input.table.name"="JDBCTable",
  "mapred.jdbc.output.table.name"="JDBCTable",
  "mapred.jdbc.password"="",
  "mapred.jdbc.hive.lazy.split"= "false"
);
person leftjoin    schedule 12.04.2018