บทนำการส่งออกข้อมูล
นี่คือบริการที่ดึงข้อมูลบันทึกมา Hive วิเคราะห์ทุกชั่วโมงและถ่ายโอนไปยังที่เก็บข้อมูลบนคลาวด์
ข้อมูลที่สร้างโดยการส่งออกข้อมูลสามารถใช้เพื่อการวิเคราะห์ได้ตามต้องการ ไม่ว่าจะโดยการสร้างฐานข้อมูลโดยตรงเป็นข้อมูลดิบหรือโดยการประมวลผลเป็นรูปแบบที่จำเป็น
Hive Analytics นำเสนอการแปลงไฟล์และการถ่ายโอนข้อมูล อย่างไรก็ตาม พื้นที่เก็บข้อมูลบนคลาวด์จำเป็นต้องลงทะเบียนกับผู้ให้บริการคลาวด์ที่คุณใช้อยู่
ลอจิกการส่งออกข้อมูล
ทุกชั่วโมง ตาราง BigQuery จะถูกแปลงเป็นไฟล์ตามรอบการส่งออกข้อมูล และอัปโหลดไปยังพื้นที่เก็บข้อมูลบนคลาวด์ที่ลงทะเบียนไว้
สิทธิ์บริการส่งออกข้อมูล
- หากต้องการใช้ฟังก์ชันส่งออกข้อมูล คุณต้องมีสิทธิ์เข้าถึงเกมทั้งหมดหรือเป็นเจ้าของ Hive บัญชี
- เนื่องจากข้อมูลถูกส่งโดยตาราง (บันทึก) จึงไม่สามารถแยกการส่งข้อมูลตามเกมได้
เกณฑ์ข้อมูลการส่งออกข้อมูล
- ค้นหาข้อมูลตารางที่เลือกและอัปโหลดไฟล์ไปยังที่เก็บข้อมูลบนคลาวด์
- ข้อมูลจะถูกดึงออกมาโดยใช้รอบการส่งข้อมูลรายชั่วโมงตาม UTC.
เช่น) แยกข้อมูลวันที่ 1 กันยายน 2023 00:00:00 – 00:59:59 น. (UTC) วันที่ 1 กันยายน 2023 เวลา 1:00 น. (UTC).- มาตรฐานการแบ่งพาร์ติชันสำหรับคอลัมน์ datetime ถูกตั้งค่าเป็นวันที่ดูลบหนึ่งวัน
เช่น) วันที่ 30 สิงหาคม 2023 เวลา 00:00:00 น. เมื่อดึงข้อมูลตั้งแต่วันที่ 1 กันยายน 2023 เวลา 00:00:00 น. ถึง 00:59:59 น. (UTC).- หากค่าของวันที่และเวลาน้อยกว่าเวลาในการสืบค้นลบหนึ่งวัน ค่าดังกล่าวจะถูกแยกออกจากข้อมูลการส่งออก
- มาตรฐานการแบ่งพาร์ติชันสำหรับคอลัมน์ datetime ถูกตั้งค่าเป็นวันที่ดูลบหนึ่งวัน
- ข้อมูลจะถูกค้นหาตามเวลาที่ป้อนลงใน Big Query
- เกณฑ์คอลัมน์ bigqueryRegistTimestamp
- แบบสอบถามตัวอย่างการแยกข้อมูล
SELECT * จาก bigquery_table โดยที่ bigqueryRegistTimestamp BETWEEN '2023-09-01 00:00:00' และ '2023-09-01 00:59:59' และ datetime >= '2023-08-31 00:00:00'
การตั้งค่าการส่งออกข้อมูล
-
เลือกบันทึก
- เลือกตาราง (บันทึก) ที่จะแยก
- คุณสามารถค้นหาและเลือกโดยป้อนส่วนหนึ่งของชื่อตาราง
- คุณสามารถเลือกได้ถึงสิบตาราง
- คุณสามารถค้นหาและเลือกโดยป้อนส่วนหนึ่งของชื่อตาราง
- เลือกตาราง (บันทึก) ที่จะแยก
-
เลือกที่เก็บข้อมูล
- คุณต้องใช้ที่เก็บข้อมูลบนคลาวด์เพื่อจัดเก็บข้อมูลของคุณ
- คลาวด์ที่รองรับ
- AWS S3
- ที่เก็บข้อมูลบนคลาวด์ของ Google GCP
-
ที่ตั้ง (ชื่อถัง)
- ป้อนชื่อบัคเก็ตของพื้นที่เก็บข้อมูล
- เช่น)
- หากชื่อบัคเก็ต AWS S3 คือ s3://s3_bucket_name
- ป้อนเฉพาะ 's3_bucket_name'
- ถ้า Google ชื่อบัคเก็ต Cloud Storage คือ gs://google_bucket_name
- ใส่เฉพาะ 'google_bucket_name' เท่านั้น
- หากชื่อบัคเก็ต AWS S3 คือ s3://s3_bucket_name
-
ประเภทข้อมูล
- มีข้อมูลสองประเภท
- ประเภทข้อมูลที่ให้ไว้
- CSV
- JSON
- ไฟล์ทั้งหมดถูกเข้ารหัสในรูปแบบ UTF-8
-
รอบการอัพโหลดไฟล์
- ข้อมูลจากช่วงรายชั่วโมงจะถูกดึงออกมาและอัพโหลดทุก ๆ ชั่วโมง
- เวลาจะขึ้นอยู่กับค่าคอลัมน์ bigqueryRegistTimestamp สำหรับการแตกข้อมูล (ขึ้นอยู่กับ UTC)
- เช่น) เริ่มแยกและอัพโหลดข้อมูลเวลา 15:00 น. (UTC).
- คอลัมน์ bigqueryRegistTimestamp มีข้อมูลตั้งแต่ 05:00:00 ถึง 05:59:59 น.
- เวลาที่เสร็จสมบูรณ์อาจแตกต่างกันไปขึ้นอยู่กับจำนวนไฟล์และขนาดอัพโหลด
- เช่น) เริ่มแยกและอัพโหลดข้อมูลเวลา 15:00 น. (UTC).
-
ลงทะเบียนคีย์การรับรองความถูกต้อง
- จำเป็นต้องได้รับอนุญาตในการอัปโหลดข้อมูลไปยังที่เก็บข้อมูลบนคลาวด์
- คุณต้องลงทะเบียนคีย์การรับรองความถูกต้องหรือไฟล์คีย์การรับรองความถูกต้องด้วยสิทธิ์การจัดเก็บข้อมูล
- เทคนิคการลงทะเบียนคีย์การรับรองความถูกต้องแตกต่างกันไปตามบริการคลาวด์
- S3 – ACCESS_KEY, ACCESS_SECRET_KEY ลงทะเบียนค่าการตรวจสอบสิทธิ์
- GCS – ลงทะเบียนไฟล์คีย์การตรวจสอบสิทธิ์
การจัดเก็บเมฆ
-
จีซีพี – Google การจัดเก็บเมฆ
- เพื่อส่งออกข้อมูลไปที่ Google Cloud จำเป็นต้องมีการกำหนดค่าต่อไปนี้
-
- ไปที่ Google หน้า Cloud Console แล้วเลือก การจัดเก็บเมฆ.
- สร้าง ถัง เพียงเพื่อการส่งออกข้อมูล
- เมื่อตั้งค่าแล้ว จะไม่สามารถแก้ไขชื่อที่เก็บข้อมูลได้ หากจำเป็น ให้ลบที่เก็บข้อมูลเก่าและสร้างที่เก็บข้อมูลใหม่
- ขอแนะนำให้สร้างบัคเก็ตสำหรับการส่งออกข้อมูลโดยเฉพาะ
- หากต้องการเปิดใช้การส่งออกข้อมูล ให้สร้างคีย์บริการและให้สิทธิ์เขียนแก่ที่เก็บข้อมูล
- เลือก IAM และผู้ดูแลระบบ → บัญชีบริการจากหน้าคอนโซล
- หากต้องการตั้งค่าบัญชีใหม่ คลิก สร้างบัญชีบริการ.
- คุณสามารถให้ ID บัญชีของคุณตรงกับชื่อที่คุณต้องการได้
- เช่น) บัญชีการโอนข้อมูลไฮฟ์@projectId.iam.gserviceaccount.com
- หลังจากสร้างบัญชีแล้ว ให้ไปที่แท็บคีย์และสร้างคีย์สำหรับบริการ
- สร้างไฟล์คีย์ในรูปแบบ JSON จาก Add Key → Create New Key
- หลังจากดาวน์โหลดไฟล์คีย์ที่สร้างขึ้นแล้ว ให้เก็บไว้อย่างปลอดภัย
- คุณสามารถให้ ID บัญชีของคุณตรงกับชื่อที่คุณต้องการได้
- ต่อไปกลับมาที่ การจัดเก็บเมฆ และย้ายไปที่แท็บสิทธิ์ใน ถัง คุณสร้าง
- ในแท็บสิทธิ์ ให้ป้อน ID บัญชีบริการที่สร้างขึ้นใหม่ใน Grant Access → เพิ่มสมาชิกหลัก
- ในการกำหนดบทบาท ให้ตรวจสอบสิทธิ์สองรายการ: Cloud Storage → ผู้สร้างออบเจ็กต์การจัดเก็บข้อมูล และ โปรแกรมดูออบเจ็กต์การจัดเก็บข้อมูลจากนั้นคลิกตกลง
- หลังจากคุณตั้งค่าทั้งหมดเสร็จแล้ว ให้ไปที่ Hive หน้าการตั้งค่าการส่งออกข้อมูลของ Analytics และลงทะเบียนไฟล์คีย์ของบริการ
- ไปที่ Google หน้า Cloud Console แล้วเลือก การจัดเก็บเมฆ.
-
AWS – S3
- หากต้องการส่งออกข้อมูลไปยัง AWS จำเป็นต้องมีการกำหนดค่าต่อไปนี้
-
- ไปที่พื้นที่จัดเก็บ → S3 ในคอนโซล AWS
- สร้างที่เก็บข้อมูลสำหรับการส่งออกข้อมูล
- เมื่อตั้งค่าแล้ว จะไม่สามารถแก้ไขชื่อที่เก็บข้อมูลได้ หากจำเป็น ให้ลบที่เก็บข้อมูลเก่าและสร้างที่เก็บข้อมูลใหม่
- ขอแนะนำให้สร้างบัคเก็ตสำหรับการส่งออกข้อมูลโดยเฉพาะ
- สร้างที่เก็บข้อมูลสำหรับการส่งออกข้อมูล
- ผู้ใช้รายนี้ควรใช้เป็นบัญชีแบบสแตนด์อโลนสำหรับการส่งออกข้อมูลเท่านั้น สร้างใหม่ ผู้ใช้ IAM.
- สร้างรหัสการเข้าถึงสำหรับบัญชีที่คุณสร้างขึ้น ข้อมูลที่เกี่ยวข้องสามารถพบได้ใน จัดการคีย์การเข้าถึงของผู้ใช้ IAM – สร้างคีย์การเข้าถึง.
- เก็บคีย์การเข้าถึงของคุณไว้ในตำแหน่งที่ปลอดภัย
- เพิ่ม นโยบายอินไลน์ สำหรับบัญชีที่สร้างขึ้น
- หากต้องการรวมนโยบายอินไลน์สำหรับกลุ่มผู้ใช้ (คอนโซล) ให้ทำตามขั้นตอนในหัวข้อการสร้างนโยบาย
-
หากต้องการกำหนดนโยบาย ให้เลือกแท็บ JSON แล้ววางโค้ด JSON ที่แสดงด้านล่าง
- ช่อง YOUR-BUCKET-NAME-HERE จะมีชื่อของบัคเก็ตที่คุณสร้างขึ้น
123456789101112131415{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Action": ["s3:GetBucketLocation", "s3:ListBucket"],"Resource": ["arn:aws:s3:::YOUR-BUCKET-NAME-HERE"]},{"Effect": "Allow","Action": ["s3:PutObject"],"Resource": ["arn:aws:s3:::YOUR-BUCKET-NAME-HERE/*"]}]}
- ช่อง YOUR-BUCKET-NAME-HERE จะมีชื่อของบัคเก็ตที่คุณสร้างขึ้น
- เมื่อคุณทำทุกอย่างเสร็จเรียบร้อยแล้ว ให้เพิ่มรหัสการเข้าถึงที่เก็บถาวรลงใน Hive ตัวเลือกการส่งออกข้อมูลคอนโซล
- ไปที่พื้นที่จัดเก็บ → S3 ในคอนโซล AWS
รูปแบบการจัดเก็บไฟล์
-
โครงสร้างไดเร็กทอรีการจัดเก็บข้อมูล
- รูปแบบไฟล์ทั่วไป
- withhive/data_export/Build_Type/YYYY/MM/DD/TableName/TableName_YYYY_MM_DD_UUID.fileExtension
- ประเภทบิลด์: มีสองค่าที่เป็นไปได้: แซนด์บ็อกซ์และสด เมื่อตั้งค่าเป็นแซนด์บ็อกซ์ ระบบจะบันทึกเป็นแซนด์บ็อกซ์
- ปปปป/ดด/วว : นี่คือปี/เดือน/วันมาตรฐานที่ดึงข้อมูล (ขึ้นอยู่กับ UTC)
- UUID : นี่คือค่าสุ่มที่ป้องกันการเขียนทับเนื่องจากชื่อไฟล์ที่ซ้ำกัน
-
นามสกุลไฟล์: แตกต่างกันไปตามประเภทไฟล์ที่เลือก
- withhive/data_export/Build_Type/YYYY/MM/DD/TableName/TableName_YYYY_MM_DD_UUID.fileExtension
- รูปแบบไฟล์ทั่วไป
ชนิดของไฟล์ | สถานะการบีบอัด | ชื่อไฟล์สุดท้าย |
---|---|---|
JSON | V | withhive/data_export/BuildType/YYYY/MM/DD/TableName/TableName_YYYY_MM_DD_UUID.json.gzip |
CSV | V | withhive/data_export/BuildType/YYYY/MM/DD/TableName/TableName_YYYY_MM_DD_UUID.csv.gzip |
-
ส่วนขยายของไฟล์
- csv.gzip
- นี่คือไฟล์ที่มีข้อมูลโดยมีฟิลด์คั่นด้วยเครื่องหมายจุลภาค
- ไม่สามารถใช้การตั้งค่าการเข้ารหัสเมื่อทำการบีบอัดไฟล์ (ไม่รองรับ)
- json.gzip
- นี่คือไฟล์ที่มีอักขระข้อมูลที่จัดอยู่ใน Javaไวยากรณ์อ็อบเจ็กต์สคริปต์
- มันถูกแยกออกเป็นเส้น
- เป็นไฟล์ json ที่บีบอัดด้วย gzip
- ไม่สามารถใช้การตั้งค่าการเข้ารหัสเมื่อทำการบีบอัดไฟล์ (ไม่รองรับ)
- csv.gzip
ประกาศเกี่ยวกับขีดจำกัดการส่งข้อมูล
- ขีดจำกัดจำนวนตารางสูงสุด
- ตารางที่เลือกได้สูงสุด: 10
- แยกขีดจำกัดความจุรวมของข้อมูลตามตาราง
- เกิน 500Mbytes เมื่อแยกข้อมูล: ไม่รวมอยู่ในการส่ง
- ข้อมูลที่ถ่ายโอนจริงเป็นไฟล์บีบอัดประมาณ 15%
- เกิน 500Mbytes เมื่อแยกข้อมูล: ไม่รวมอยู่ในการส่ง