ClickHouse/docs/fa/engines/table-engines/integrations/hdfs.md
Ivan Blinkov cd14f9ebcb
SQL reference refactoring (#10857)
* split up select.md

* array-join.md basic refactoring

* distinct.md basic refactoring

* format.md basic refactoring

* from.md basic refactoring

* group-by.md basic refactoring

* having.md basic refactoring

* additional index.md refactoring

* into-outfile.md basic refactoring

* join.md basic refactoring

* limit.md basic refactoring

* limit-by.md basic refactoring

* order-by.md basic refactoring

* prewhere.md basic refactoring

* adjust operators/index.md links

* adjust sample.md links

* adjust more links

* adjust operatots links

* fix some links

* adjust aggregate function article titles

* basic refactor of remaining select clauses

* absolute paths in make_links.sh

* run make_links.sh

* remove old select.md locations

* translate docs/es

* translate docs/fr

* translate docs/fa

* remove old operators.md location

* change operators.md links

* adjust links in docs/es

* adjust links in docs/es

* minor texts adjustments

* wip

* update machine translations to use new links

* fix changelog

* es build fixes

* get rid of some select.md links

* temporary adjust ru links

* temporary adjust more ru links

* improve curly brace handling

* adjust ru as well

* fa build fix

* ru link fixes

* zh link fixes

* temporary disable part of anchor checks
2020-05-15 07:34:54 +03:00

4.9 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 36 HDFS

HDFS

این موتور ادغام با فراهم می کند Apache Hadoop اکوسیستم با اجازه دادن به مدیریت داده ها در HDFSاز طریق کلیکهاوس. این موتور مشابه است به پرونده و URL موتورهای, اما فراهم می کند ویژگی های هادوپ خاص.

استفاده

ENGINE = HDFS(URI, format)

این URI پارامتر تمام فایل نشانی اینترنتی در اچ دی است. این format پارامتر یکی از فرمت های فایل های موجود را مشخص می کند. برای انجام SELECT نمایش داده شد, فرمت باید برای ورودی پشتیبانی می شود, و به انجام INSERT queries for output. The available formats are listed in the فرشها بخش. قسمت مسیر URI ممکن است حاوی دل تنگی. در این مورد جدول قابل خواندن خواهد بود.

مثال:

1. تنظیم hdfs_engine_table جدول:

CREATE TABLE hdfs_engine_table (name String, value UInt32) ENGINE=HDFS('hdfs://hdfs1:9000/other_storage', 'TSV')

2. پر کردن پرونده:

INSERT INTO hdfs_engine_table VALUES ('one', 1), ('two', 2), ('three', 3)

3. پرسوجوی داده:

SELECT * FROM hdfs_engine_table LIMIT 2
┌─name─┬─value─┐
│ one  │     1 │
│ two  │     2 │
└──────┴───────┘

پیاده سازی اطلاعات

  • می خواند و می نویسد می تواند موازی
  • پشتیبانی نمیشود:
    • ALTER و SELECT...SAMPLE عملیات.
    • شاخص.
    • تکرار.

دل تنگی در مسیر

اجزای مسیر چندگانه می تواند دل تنگی دارند. برای پردازش فایل باید وجود داشته باشد و مسابقات به الگوی کل مسیر. لیست فایل های تعیین در طول SELECT (نه در CREATE لحظه).

  • * — Substitutes any number of any characters except / از جمله رشته خالی.
  • ? — Substitutes any single character.
  • {some_string,another_string,yet_another_one} — Substitutes any of strings 'some_string', 'another_string', 'yet_another_one'.
  • {N..M} — Substitutes any number in range from N to M including both borders.

سازه با {} شبیه به دور تابع جدول.

مثال

  1. فرض کنید ما چندین فایل را در قالب فیلم با اوریس زیر در اچ دی ها داریم:
  • hdfs://hdfs1:9000/some_dir/some_file_1
  • hdfs://hdfs1:9000/some_dir/some_file_2
  • hdfs://hdfs1:9000/some_dir/some_file_3
  • hdfs://hdfs1:9000/another_dir/some_file_1
  • hdfs://hdfs1:9000/another_dir/some_file_2
  • hdfs://hdfs1:9000/another_dir/some_file_3
  1. راه های مختلفی برای ایجاد یک جدول متشکل از تمام شش فایل وجود دارد:
CREATE TABLE table_with_range (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/some_file_{1..3}', 'TSV')

راه دیگر:

CREATE TABLE table_with_question_mark (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/some_file_?', 'TSV')

جدول شامل تمام فایل ها در هر دو دایرکتوری (تمام فایل ها باید فرمت و طرح توصیف شده در پرس و جو راضی):

CREATE TABLE table_with_asterisk (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/*', 'TSV')

!!! warning "اخطار" اگر فهرستی از فایل های حاوی محدوده تعداد با صفر پیشرو, استفاده از ساخت و ساز با پرانتز برای هر رقم به طور جداگانه و یا استفاده ?.

مثال

ایجاد جدول با فایل های به نام file000, file001, … , file999:

CREARE TABLE big_table (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/big_dir/file{0..9}{0..9}{0..9}', 'CSV')

ستونهای مجازی

  • _path — Path to the file.
  • _file — Name of the file.

همچنین نگاه کنید به

مقاله اصلی