{"id":336352,"date":"2022-07-29T15:00:25","date_gmt":"2022-07-29T15:00:25","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=336352"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=336352","title":{"rendered":"<span>\u041a\u0430\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0433\u0438\u044e Sqoop \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0435\u0440\u0435\u0437 Spark<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043b\u044b\u0448\u0430\u0442\u044c, \u0447\u0442\u043e Sqoop \u2014 \u044d\u0442\u043e \u0441\u0435\u0440\u0435\u0431\u0440\u044f\u043d\u0430\u044f \u043f\u0443\u043b\u044f \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430 \u0441 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0411\u0414 \u0432 Hadoop, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0441 Oracle, \u0438 Spark-\u043e\u043c \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b, \u0447\u0442\u043e sqoop \u2014 \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0434 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443, \u0430 Spark \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u041f\u0435\u0442\u0440\u043e\u0432, \u044f \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\u0430 &#171;\u0427\u0430\u043f\u0442\u0435\u0440 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432&#187;, \u0438 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 Spark, \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u044f\u0441\u044c \u043d\u0430 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 Sqoop.<\/p>\n<h2>\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439<\/h2>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446 OracleDB.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443\/\u043f\u0430\u0440\u0442\u0438\u0446\u0438\u044e \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 Hadoop c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 hive.<\/p>\n<details class=\"spoiler\">\n<summary>\u041e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e, \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"sql\">-- DWH.SERVICE_FEATURE definition   CREATE TABLE \"DWH\".\"SERVICE_FEATURE\"    (    \"BAN\" NUMBER(9,0) NOT NULL ENABLE,     \"SUBSCRIBER_NO\" CHAR(11) NOT NULL ENABLE,     \"SOC\" CHAR(9) NOT NULL ENABLE,     \"SOC_SEQ_NO\" NUMBER(9,0) NOT NULL ENABLE,     \"SERVICE_FTR_SEQ_NO\" NUMBER(9,0) NOT NULL ENABLE,     \"SYS_CREATION_DATE\" DATE NOT NULL ENABLE,     \"SYS_UPDATE_DATE\" DATE,     \"OPERATOR_ID\" NUMBER(9,0),     \"APPLICATION_ID\" CHAR(6),     \"DL_SERVICE_CODE\" CHAR(5),     \"DL_UPDATE_STAMP\" NUMBER(4,0),     \"SOC_EFFECTIVE_DATE\" DATE NOT NULL ENABLE,     \"CUSTOMER_ID\" NUMBER(9,0) NOT NULL ENABLE,     \"FEATURE_CODE\" CHAR(6) NOT NULL ENABLE,     \"SERVICE_TYPE\" CHAR(1) NOT NULL ENABLE,     \"SOC_LEVEL_CODE\" CHAR(1) NOT NULL ENABLE,     \"FTR_EFFECTIVE_DATE\" DATE NOT NULL ENABLE,     \"FTR_EFF_RSN_CODE\" CHAR(1),     \"FTR_EXPIRATION_DATE\" DATE,     \"FTR_EXP_RSN_CODE\" CHAR(1),     \"RC_WAIVER_EFF_DATE\" DATE,     \"RC_WAIVER_EXPR_DATE\" DATE,     \"RC_WAIVER_RSN\" CHAR(6),     \"ADDITIONAL_INFO_AMT\" NUMBER(11,2),     \"ADDITIONAL_INFO_TYPE\" CHAR(1),     \"ADDITIONAL_INFO\" VARCHAR2(500),     \"CHARGE_LEVEL_CODE\" CHAR(1),     \"BEN\" NUMBER(5,0),     \"REVENUE_CODE\" CHAR(3),     \"SOC_RELATED\" CHAR(9),     \"BL_PROM_SORT_CODE\" NUMBER(2,0),     \"SERVICE_CLASS\" CHAR(3),     \"RATE_CODE\" CHAR(9),     \"RC_EXPIRATION_DATE\" DATE,     \"RC_ADVPYM_WAIVE_EFF_DT\" DATE,     \"RC_ADVPYM_WAIVE_EXPR_DT\" DATE,     \"RC_ADVPYM_WAIVE_RSN\" CHAR(6),     \"RC_ADVPYM_BILL_SEQ_NO\" NUMBER(3,0),     \"RENEWAL_RATE_CODE\" CHAR(9),     \"SECONDARY_TN\" CHAR(11),     \"CONV_RUN_NO\" NUMBER(3,0),     \"PORT_IN_START_DATE\" DATE,     \"PORT_IN_END_DATE\" DATE    ) PCTFREE 10 PCTUSED 40 INITRANS 7 MAXTRANS 255  NOCOMPRESS  LOGGING   STORAGE(   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\"   PARTITION BY RANGE (\"BAN\")  (PARTITION \"SERVICE_FEATURE_1\"  VALUES LESS THAN (18424929)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_2\"  VALUES LESS THAN (43933393)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_3\"  VALUES LESS THAN (65938220)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_4\"  VALUES LESS THAN (78030882)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_5\"  VALUES LESS THAN (89426107)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_6\"  VALUES LESS THAN (99364535)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_7\"  VALUES LESS THAN (105756681)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_8\"  VALUES LESS THAN (111776927)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_9\"  VALUES LESS THAN (117780453)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_10\"  VALUES LESS THAN (123780786)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_11\"  VALUES LESS THAN (129789421)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_12\"  VALUES LESS THAN (135790871)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_13\"  VALUES LESS THAN (141825258)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_14\"  VALUES LESS THAN (147827477)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_15\"  VALUES LESS THAN (153829228)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_16\"  VALUES LESS THAN (159835744)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_17\"  VALUES LESS THAN (165838495)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_18\"  VALUES LESS THAN (171850405)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_19\"  VALUES LESS THAN (177898201)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_20\"  VALUES LESS THAN (183970359)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_21\"  VALUES LESS THAN (190047208)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_22\"  VALUES LESS THAN (196075759)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_23\"  VALUES LESS THAN (202078088)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_24\"  VALUES LESS THAN (208151076)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_25\"  VALUES LESS THAN (345838310)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_26\"  VALUES LESS THAN (351838775)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_27\"  VALUES LESS THAN (357839253)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_28\"  VALUES LESS THAN (363851043)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_29\"  VALUES LESS THAN (369857876)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_30\"  VALUES LESS THAN (375861106)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_31\"  VALUES LESS THAN (381863539)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_32\"  VALUES LESS THAN (387914806)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_33\"  VALUES LESS THAN (393921028)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_34\"  VALUES LESS THAN (399926438)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_35\"  VALUES LESS THAN (405929686)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_36\"  VALUES LESS THAN (411936420)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_37\"  VALUES LESS THAN (417974400)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_38\"  VALUES LESS THAN (423985227)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_39\"  VALUES LESS THAN (429992484)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_40\"  VALUES LESS THAN (436183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_41\"  VALUES LESS THAN (442183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_42\"  VALUES LESS THAN (448183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_43\"  VALUES LESS THAN (454183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_44\"  VALUES LESS THAN (460183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_45\"  VALUES LESS THAN (466183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_46\"  VALUES LESS THAN (472183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_47\"  VALUES LESS THAN (478183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_48\"  VALUES LESS THAN (484183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_49\"  VALUES LESS THAN (490183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_50\"  VALUES LESS THAN (496183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_51\"  VALUES LESS THAN (502183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_52\"  VALUES LESS THAN (508183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_53\"  VALUES LESS THAN (514183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_54\"  VALUES LESS THAN (520183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_55\"  VALUES LESS THAN (526183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_56\"  VALUES LESS THAN (532183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_57\"  VALUES LESS THAN (538183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_58\"  VALUES LESS THAN (544183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_59\"  VALUES LESS THAN (550183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_60\"  VALUES LESS THAN (556183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_61\"  VALUES LESS THAN (562183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_62\"  VALUES LESS THAN (568183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_63\"  VALUES LESS THAN (574183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_64\"  VALUES LESS THAN (580183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_65\"  VALUES LESS THAN (586183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_66\"  VALUES LESS THAN (592183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_67\"  VALUES LESS THAN (598183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_68\"  VALUES LESS THAN (604183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_69\"  VALUES LESS THAN (610183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_70\"  VALUES LESS THAN (616183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_71\"  VALUES LESS THAN (622183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_72\"  VALUES LESS THAN (628183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_73\"  VALUES LESS THAN (634183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_74\"  VALUES LESS THAN (640183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_75\"  VALUES LESS THAN (646183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_76\"  VALUES LESS THAN (652183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_77\"  VALUES LESS THAN (658183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_78\"  VALUES LESS THAN (664183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_79\"  VALUES LESS THAN (670183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_80\"  VALUES LESS THAN (676183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_81\"  VALUES LESS THAN (682183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_82\"  VALUES LESS THAN (688183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_83\"  VALUES LESS THAN (694183736)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_MAX\"  VALUES LESS THAN (MAXVALUE)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC LOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" )   PARALLEL 8 ; <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0411\u0443\u0434\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0441\u0430\u043c\u0443\u044e \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u044e\u00a0SERVICE_FEATURE_MAX (14 \u043c\u043b\u0440\u0434 \u0441\u0442\u0440\u043e\u043a)<\/p>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Sqoop \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"sql\">sqoop import \\ --num-mappers 8 \\ --fetch-size 100000 \\ -Dmapreduce.task.timeout=0 \\ -D mapreduce.map.memory.mb=16384 \\ -Doraoop.import.partitions='\"SERVICE_FEATURE_MAX\"' \\ --hcatalog-database customer360_stg \\ --hcatalog-table customer_oracle_sqoop \\ --connect jdbc:oracle:thin:@\/\/10.31.178.66:1521\/ORCL  \\ --username user \\ --password password \\ --table DWH.SERVICE_FEATURE \\ --drop-and-create-hcatalog-table \\ --hcatalog-storage-stanza 'stored as orcfile' \\ --direct <\/code><\/pre>\n<p>\u041f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u043c\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b<em>: 9 Cores, 144GB RAM<\/em><\/p>\n<p>\u0412\u0440\u0435\u043c\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438:<em> ~ 26 \u0447\u0430\u0441\u043e\u0432 (14 \u0447\u0430\u0441\u043e\u0432, \u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f)<\/em><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u044d\u0442\u0443 \u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0447\u0435\u0440\u0435\u0437 Spark.<\/p>\n<p>\u0411\u0443\u0434\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432 8 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u043a\u0430\u043a \u0432 Sqoop.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0432 \u0441\u043f\u043e\u0441\u043e\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e Spark, \u0438 \u0432\u0437\u044f\u0432 \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u0442\u043e\u043b\u0431\u0435\u0446 ROWNUM \u0437\u0430 \u043f\u043e\u043b\u0435, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 (\u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0435 \u043f\u043e\u043b\u0435, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0435\u0441\u0442\u044c \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u043f\u043e\u0440\u0446\u0438\u0438),\u00a0\u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"sql\">\/\/\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 rownum val max = spark.   read.   format(\"jdbc\").   option(\"url\", \"jdbc:oracle:thin:@\/\/10.31.178.66:1521\/ORCL\").   option(\"user\", \"user\").   option(\"password\", \"password\").   option(\"driver\", \"oracle.jdbc.driver.OracleDriver\").   option(\"dbtable\", s\"( select max(rownum) as row_num FROM DWH.SERVICE_FEATURE PARTITION (SERVICE_FEATURE))\").   load().   collect().   map(_.getDecimal(0)).   head.toBigInteger   \/\/\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 val etlDF = spark.   read.   format(\"jdbc\").   option(\"url\", \"jdbc:oracle:thin:@\/\/10.31.178.66:1521\/ORCL\").   option(\"user\", \"user\").   option(\"password\", \"password\").   option(\"driver\", \"oracle.jdbc.driver.OracleDriver\").   option(\"dbtable\", \"( select a.*, rownum as row_num FROM DWH.SERVICE_FEATURE PARTITION (SERVICE_FEATURE) a)\" ).   option(\"partitionColumn\", \"row_num\").   option(\"upperBound\", max.toString().toInt).   option(\"lowerBound\", 0).   option(\"numPartitions\", 8).   option(\"fetchSize\", \"10000\").   option(\"driver\", \"oracle.jdbc.driver.OracleDriver\").   load()   \/\/\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c etlDF.   write.   mode(SaveMode.Overwrite).   format(\"orc\").   saveAsTable(\"customer360_stg.customer_oracle_spark\") <\/code><\/pre>\n<p>\u041f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u043c\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b: <em>9 Cores, 132GB RAM<\/em><\/p>\n<p>\u0412\u0440\u0435\u043c\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438: <em>\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043f\u043e\u0441\u043b\u0435 35 \u0447\u0430\u0441\u043e\u0432<\/em><\/p>\n<h2>\u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442?<\/h2>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u0430\u043a\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u0435\u043b\u0430\u044e\u0442 \u0432\u044b\u0432\u043e\u0434\u044b, \u0447\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a \u0447\u0435\u0440\u0435\u0437 Sqoop \u0438 Spark \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e \u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u0435 \u043d\u0430\u0434\u043e \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c Sqoop.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u0432 \u0447\u0451\u043c \u0436\u0435 \u043c\u0430\u0433\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 Sqoop, \u0432\u0435\u0434\u044c \u0438 Sqoop, \u0438 Spark \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 JDBC-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 (\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c, \u043a\u0440\u043e\u043c\u0435 \u043a\u0430\u043a fetchSize), \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u0435\u0441\u0441\u0438\u0439. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c Sqoop \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0443\u044e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e MapReduce, \u0430 Spark \u0432\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0434\u0435\u043b\u044b\u0432\u0430\u0435\u0442 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0447\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 ORC.\u00a0<\/p>\n<p>\u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0447\u0435\u0440\u0435\u0437 Spark \u0432\u0441\u0435 8 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0434\u0435\u043b\u0430\u044e\u0442 fullscan \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0438, \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u0443\u044e\u0442 \u043d\u0443\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u044f\u0442 \u0438\u0445 \u043d\u0430 executor, \u0430 \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0431\u044a\u0451\u043c\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0435, \u0442\u043e \u043e\u043d\u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c spill to disk \u0438 \u043c\u043d\u043e\u0433\u043e \u0435\u0449\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u0427\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u0441\u044f \u043e\u0442 \u0441\u043f\u0438\u043b\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0435\u0439, \u0430 \u044d\u0442\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u0441\u0435\u0441\u0441\u0438\u0439 \u0438 \u0444\u0443\u043b\u0441\u043a\u0430\u043d\u043e\u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/p>\n<p>\u0418 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u0447\u0435\u043c\u0443 Sqoop \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442\u00a0fullscan \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438, \u0430 \u0437\u043d\u0430\u0435\u0442, \u0447\u0442\u043e \u0435\u043c\u0443 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c\u044e, \u0442\u0430\u043a, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0435\u0441\u0441\u0438\u044f \u0437\u043d\u0430\u0435\u0442, \u043a\u0430\u043a\u043e\u0439 \u0435\u0439 \u0431\u043b\u043e\u043a \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c. \u041e \u0431\u043b\u043e\u043a\u0430, \u044d\u043a\u0441\u0442\u0435\u043d\u0442\u0430\u0445, \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/oracle-dba.ru\/docs\/architecture\/tablespaces\/segments-extents-and-blocks\">\u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 Sqoop \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u0435\u043b\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u043e \u0442\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<pre><code class=\"sql\">    SELECT       data_object_id,       file_id,       relative_fno,       file_batch,       MIN (start_block_id) start_block_id,       MAX (end_block_id) end_block_id,       SUM (blocks) blocks         FROM           (SELECT              o.data_object_id,              e.file_id,              e.relative_fno,              e.block_id start_block_id,              e.block_id + e.blocks - 1 end_block_id,              e.blocks,              CEIL (SUM(e.blocks) OVER (PARTITION BY o.data_object_id, e.file_id ORDER BY e.block_id ASC) \/                (SUM (e.blocks)OVER (PARTITION BY o.data_object_id,e.file_id) \/ 21)) file_batch           FROM             dba_extents e,             dba_objects o,             dba_tab_subpartitions tsp           WHERE             o.owner = 'DWH'             AND o.object_name = 'SERVICE_FRATURE'             AND e.owner = 'DWH'             AND e.segment_name = 'SERVICE_FRATURE'             AND o.owner = e.owner             AND o.object_name = e.segment_name             AND (o.subobject_name = e.partition_name               OR (o.subobject_name IS NULL                 AND e.partition_name IS NULL))             AND o.owner = tsp.table_owner(+)             AND o.object_name = tsp.table_name(+)             AND o.subobject_name = tsp.subpartition_name(+))     GROUP BY       data_object_id,       file_id,       relative_fno,       file_batch     ORDER BY data_object_id,       file_id,       relative_fno,       file_batch <\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f27\/967\/d1e\/f27967d1ec19219c5e4760d828e3b628.png\" width=\"885\" height=\"279\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f27\/967\/d1e\/f27967d1ec19219c5e4760d828e3b628.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u0440\u043e\u0441, \u043e\u0431\u0440\u0430\u0442\u0438\u0432\u0448\u0438\u0441\u044c \u043a \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Oracle:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">\u2116<\/p>\n<\/td>\n<td>\n<p align=\"left\">Column<\/p>\n<\/td>\n<td>\n<p align=\"left\">Description<\/p>\n<\/td>\n<td>\n<p align=\"left\">Comment<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">DATA_OBJECT_ID<\/p>\n<\/td>\n<td>\n<p align=\"left\">Dictionary object number of the segment   that contains the object<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">FILE_ID<\/p>\n<\/td>\n<td>\n<p align=\"left\">File identifier number of the file containing   the extent<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">RELATIVE_FNO<\/p>\n<\/td>\n<td>\n<p align=\"left\">Relative file number of the first extent   block<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">FILE_BATCH<\/p>\n<\/td>\n<td>\n<p align=\"left\">Number \u043ef the batch in file<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">START_BLOCK_ID<\/p>\n<\/td>\n<td>\n<p align=\"left\">Starting block   number of the extent<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">END_BLOCK_ID<\/p>\n<\/td>\n<td>\n<p align=\"left\">Block number of the extent<\/p>\n<\/td>\n<td>\n<p align=\"left\">START_BLOCK_ID + BLOCKS &#8212; 1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\">BLOCKS<\/p>\n<\/td>\n<td>\n<p align=\"left\">Size of the extent in Oracle blocks<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00a0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\">SUBOBJECT_NAME<\/p>\n<\/td>\n<td>\n<p align=\"left\">Name of the subobject (for example,   partition)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u043b\u0435 \u0432 \u0432\u044b\u0432\u043e\u0434\u0435 \u043d\u0435   \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442, \u043d\u043e \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043e\u043d\u043e \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 Sqoop \u0441\u0442\u0440\u043e\u0438\u0442 \u0441\u0432\u043e\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u043b\u044f \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"sql\">SELECT \/*+ NO_INDEX(t) *\/ CUSTOMER_ID,SYS_CREATION_DATE,SYS_UPDATE_DATE,OPERATOR_ID,APPLICATION_ID,DL_SERVICE_CODE,DL_UPDATE_STAMP,CONTACT_TELNO,CONTACT_TN_EXTNO,CONTACT_FAXNO,CONTACT_COUNTRY_CODE,WORK_TELNO,WORK_TN_EXTNO,HOME_TELNO,OTHER_TELNO,OTHER_EXTNO,OTHER_TN_TYPE,BIRTH_DATE,EMPLOYMENT_DT,EMPLYR_NAME,EMPLOYEE_QTY,YEARS_IN_BUSINESS,EMPLOYEE_POSITION,BUSINESS_EST_DATE,MARKET_ID,GUR_CR_CARD_TYPE,GUR_CR_CARD_NO,GUR_CR_CARD_EXP_DT,ACC_PASSWORD,VERIFIED_DATE,COMPANY_REGISTER_NUM,BUSINESS_CATEGORY,CONV_RUN_NO,LEGACY_CST_NUM,E_MAIL_ADDR,MAILSHOT,IMEI_BLACK_LIST_PASS,COMPANY_TYPE,CUST_GENDER,CUST_PERSONAL_ID,CUST_NATIONALITY,CUST_DOC_TYPE,CUST_DOC_ID,CUST_DOC_NO,CUST_DOC_DATE,CUST_DOC_ISSUE,EMP_NO,AUTPRSN_BIRTH_DATE,AUTPRSN_PERSONAL_ID,GUARANTOR_TYPE,GUR_PERSONAL_ID,GUR_COMPANY_REG_NUM,START_TIME_AT_BANK,GUR_BIRTH_DATE,GUR_TAX_NUMBER,REGISTER_IND,CONTACT_TELNO_2ND,CONTACT_TN_EXTNO_2ND,CONTACT_FAXNO_2ND,CONTACT_COUNTRY_CODE_2ND,CREDIT_CARD_IND,AUTHORIZED_SEC,LEGAL_NAME_FORM,'1024_4' data_chunk_id  FROM DWH.CUSTOMER  t  WHERE ((rowid >= dbms_rowid.rowid_create(1, 510042, 1024, 127475712, 0) AND rowid &lt;= dbms_rowid.rowid_create(1, 510042, 1024, 127696895, 32767))) UNION ALL  SELECT \/*+ NO_INDEX(t) *\/ CUSTOMER_ID,SYS_CREATION_DATE,SYS_UPDATE_DATE,OPERATOR_ID,APPLICATION_ID,DL_SERVICE_CODE,DL_UPDATE_STAMP,CONTACT_TELNO,CONTACT_TN_EXTNO,CONTACT_FAXNO,CONTACT_COUNTRY_CODE,WORK_TELNO,WORK_TN_EXTNO,HOME_TELNO,OTHER_TELNO,OTHER_EXTNO,OTHER_TN_TYPE,BIRTH_DATE,EMPLOYMENT_DT,EMPLYR_NAME,EMPLOYEE_QTY,YEARS_IN_BUSINESS,EMPLOYEE_POSITION,BUSINESS_EST_DATE,MARKET_ID,GUR_CR_CARD_TYPE,GUR_CR_CARD_NO,GUR_CR_CARD_EXP_DT,ACC_PASSWORD,VERIFIED_DATE,COMPANY_REGISTER_NUM,BUSINESS_CATEGORY,CONV_RUN_NO,LEGACY_CST_NUM,E_MAIL_ADDR,MAILSHOT,IMEI_BLACK_LIST_PASS,COMPANY_TYPE,CUST_GENDER,CUST_PERSONAL_ID,CUST_NATIONALITY,CUST_DOC_TYPE,CUST_DOC_ID,CUST_DOC_NO,CUST_DOC_DATE,CUST_DOC_ISSUE,EMP_NO,AUTPRSN_BIRTH_DATE,AUTPRSN_PERSONAL_ID,GUARANTOR_TYPE,GUR_PERSONAL_ID,GUR_COMPANY_REG_NUM,START_TIME_AT_BANK,GUR_BIRTH_DATE,GUR_TAX_NUMBER,REGISTER_IND,CONTACT_TELNO_2ND,CONTACT_TN_EXTNO_2ND,CONTACT_FAXNO_2ND,CONTACT_COUNTRY_CODE_2ND,CREDIT_CARD_IND,AUTHORIZED_SEC,LEGAL_NAME_FORM,'1024_12' data_chunk_id  FROM DWH.CUSTOMER  t  WHERE ((rowid >= dbms_rowid.rowid_create(1, 510042, 1024, 129204224, 0) AND rowid &lt;= dbms_rowid.rowid_create(1, 510042, 1024, 129417215, 32767))) <\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u043c\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u0423 \u044d\u0442\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u043c\u0438\u043d\u0443\u0441 \u2013 \u0431\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e FILE_BATCH \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0440\u0430\u0437 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e UNION \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438, \u0438 \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 Oracle, \u0442\u043e \u044d\u0442\u043e \u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0431\u0430\u0437\u044b.<\/p>\n<p>\u0417\u0430\u043f\u0440\u043e\u0441 \u043d\u0438\u0447\u0435\u043c \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u043b\u0435\u043a\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0434\u0435\u043b\u0430\u043b\u0438 \u0432 \u043d\u0430\u0448\u0435\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 Spark \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438, \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443 \u043f\u043e\u043b\u044e \u043e\u043d \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 &#8212; rowid<\/p>\n<h2>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Spark<\/h2>\n<p>\u041e\u043f\u0438\u0440\u0430\u044f\u0441\u044c \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u0438\u0442 \u0441\u0432\u043e\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b Sqoop, \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438, \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0441\u0432\u043e\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438.<\/p>\n<p>\u041f\u0440\u0435\u0440\u0435\u043a\u0432\u0435\u0437\u0438\u0442\u044b:<\/p>\n<p>\u0414\u043b\u044f \u0422\u0423\u0417, \u0438\u0437-\u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443, \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0430\u0432\u0430 (\u044d\u0442\u043e\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438 Sqoop):<\/p>\n<pre><code class=\"sql\">grant select on v_$instance to user; grant select on dba_tables to user; grant select on dba_tab_columns to user; grant select on dba_objects to user; grant select on dba_extents to user; grant select on dba_segments to user; grant select on dba_constraints to user; grant select on v_$database to user; grant select on v_$parameter to user; grant select on dba_tab_subpartitions to user; <\/code><\/pre>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e:<\/p>\n<pre><code class=\"sql\">  \/\/\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432   val cntSession = 8       \/\/\u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0440\u0446\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u043d\u0430\u0448\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 - \u0430\u043d\u0430\u043b\u043e\u0433 FILE_BATCH \u0443 Sqoop   val cntChunk = 512     \/\/\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 JDBC \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f   val jdbcUrl = \"jdbc:oracle:thin:@\/\/10.31.178.66:1521\/ORCL\"   val fetchSize = 100000    val orclUsr = \"user\"   val orclPwd = \"password\"       \/\/\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430   val orclSchema = \"DWH\"   val orclTable = \"SERVICE_FEATURE\"   val orclPartition = \"SERVICE_FEATURE_MAX\"     \/\/\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a\u0430   val hivePath = \"\/warehouse\/tablespace\/external\/hive\/customer360_stg.db\/service_feature_orcl\"   val hiveTable = \"customer360_stg.service_feature_orcl\"   val trgNumFiles = 400 <\/code><\/pre>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0447\u0430\u043d\u043a\u043e\u0432, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441 Sqoop \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0438\u043c\u0435\u043d\u0438 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u0438.<\/p>\n<pre><code class=\"sql\">  val etlDFChunkAll = spark.     read.     format(\"jdbc\").     option(\"url\", jdbcUrl).     option(\"user\", orclUsr).     option(\"password\", orclPwd).     option(\"driver\", \"oracle.jdbc.driver.OracleDriver\").     option(\"dbtable\",       s\"\"\"(     SELECT       data_object_id,       file_id,       relative_fno,       file_batch,       subobject_name,       MIN (start_block_id) start_block_id,       MAX (end_block_id) end_block_id,       SUM (blocks) blocks         FROM           (SELECT              o.data_object_id,              o.subobject_name,              e.file_id,              e.relative_fno,              e.block_id start_block_id,              e.block_id + e.blocks - 1 end_block_id,              e.blocks,              CEIL (SUM(e.blocks) OVER (PARTITION BY o.data_object_id, e.file_id ORDER BY e.block_id ASC) \/                (SUM (e.blocks)OVER (PARTITION BY o.data_object_id,e.file_id) \/ $cntChunk)) file_batch           FROM             dba_extents e,             dba_objects o,             dba_tab_subpartitions tsp           WHERE             o.owner = '$orclSchema'             AND o.object_name = '$orclTable'             AND e.owner = '$orclSchema'             AND e.segment_name = '$orclTable'             AND o.owner = e.owner             AND o.object_name = e.segment_name             AND (o.subobject_name = e.partition_name               OR (o.subobject_name IS NULL                 AND e.partition_name IS NULL))             AND o.owner = tsp.table_owner(+)             AND o.object_name = tsp.table_name(+)             AND o.subobject_name = tsp.subpartition_name(+))     GROUP BY       data_object_id,       file_id,       relative_fno,       file_batch,       subobject_name     ORDER BY data_object_id,       file_id,       relative_fno,       file_batch,       subobject_name)\"\"\").     load() <\/code><\/pre>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c, \u0435\u0441\u043b\u0438 \u043d\u0430\u0434\u043e \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0442\u0438\u0446\u0438\u044e.<\/p>\n<pre><code class=\"sql\">  val etlDFChunk =     if (orclPartition == \"\")       etlDFChunkAll     else etlDFChunkAll.       filter($\"subobject_name\" === orclPartition) <\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043b\u0435\u0439 (\u0430\u0434\u043c\u0438\u043d\u044b Oracle \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u044e\u0442 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043f\u043e *)<\/p>\n<pre><code class=\"sql\">  val lstColumn = spark.     read.     format(\"jdbc\").     option(\"url\", jdbcUrl).     option(\"user\", orclUsr).     option(\"password\", orclPwd).     option(\"driver\", \"oracle.jdbc.driver.OracleDriver\").     option(\"dbtable\", s\"( SELECT * FROM $orclSchema.$orclTable WHERE 1=0 )\").     load().     columns.     toList <\/code><\/pre>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441, \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.<\/p>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443 \u043d\u0430\u0441 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u043e\u0432 (8), \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0436\u0434\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0430\u0441\u044c \u0432 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c.<\/p>\n<pre><code class=\"sql\">  def mkQuery(lstColumn: List[String]) = udf((data_object_id: Integer,                                               relative_fno: Integer,                                               start_block_id: Integer,                                               end_block_id: Integer) =>     s\"\"\"SELECT \/*+ NO_INDEX(t) *\/           ${lstColumn.mkString(\", \")}          FROM            $orclSchema.$orclTable          WHERE            ((rowid >= dbms_rowid.rowid_create(1, $data_object_id, $relative_fno, $start_block_id, 0)              AND rowid &lt;= dbms_rowid.rowid_create(1, $data_object_id, $relative_fno, $end_block_id, 32767)))\"\"\")     val lstQueries = etlDFChunk.     withColumn(\"query\",       mkQuery(lstColumn)($\"data_object_id\" cast (IntegerType),         $\"relative_fno\" cast (IntegerType),         $\"start_block_id\" cast (IntegerType),         $\"end_block_id\" cast (IntegerType))).     select($\"relative_fno\", $\"file_batch\" cast (IntegerType), $\"query\").     collect().     map(row => s\"\"\"${row.getInt(0)}_${row.getInt(1)}\"\"\" -> row.getString(2)).toMap.grouped(cntSession).     toList <\/code><\/pre>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c, \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 Scala, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e.<\/p>\n<pre><code class=\"sql\">  lstQueries.foreach{ lst =>     val lstPar = lst.par     lstPar.tasksupport = new ForkJoinTaskSupport(new ForkJoinPool(cntSession))     lstPar.foreach{query =>       spark.         read.         format(\"jdbc\").         option(\"url\", jdbcUrl).         option(\"user\", orclUsr).         option(\"password\", orclPwd).         option(\"driver\", \"oracle.jdbc.driver.OracleDriver\").         option(\"dbtable\", s\"( ${query._2} )\").         option(\"fetchSize\", fetchSize).         load().         write.         mode(SaveMode.Overwrite).         orc(s\"${hivePath}_tmp\/part_${query._1}\")     }   } <\/code><\/pre>\n<p>\u0427\u0438\u0442\u0430\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e.<\/p>\n<pre><code class=\"sql\">  val mapQuery = lstQueries.flatten.toMap   val trgDf = mapQuery.map { query =>     spark.       read.       orc(s\"${hivePath}_tmp\/part_${query._1}\")   }.     reduce(_ union (_))     trgDf.     coalesce(trgNumFiles).     write.     mode(SaveMode.Overwrite).     option(\"path\", hivePath).     format(\"orc\").     saveAsTable(hiveTable)     val confFs = spark.sparkContext.hadoopConfiguration   val fs = FileSystem.get(confFs)   val path = new Path(s\"${hivePath}_tmp\")     if (fs.exists(path)) fs.delete(path, true) } <\/code><\/pre>\n<p><strong>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b:<\/strong><\/p>\n<p>\u041f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u043c\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b: <em>9 Cores, 132GB RAM<\/em><\/p>\n<p>\u0412\u0440\u0435\u043c\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438: <em>12 \u0447\u0430\u0441\u043e\u0432<\/em><\/p>\n<h2>\u0418\u0442\u043e\u0433\u0438<\/h2>\n<p>\u041a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 Spark \u043c\u043e\u0436\u043d\u043e, \u0434\u0430\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0442\u043e\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 Sqoop \u0438\u043b\u0438 \u043b\u0443\u0447\u0448\u0435.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u043e\u0434\u0438\u043d \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0433\u0440\u0443\u0437\u0438\u0442 Sqoop, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0443 \u0441\u0435\u0431\u044f \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c. \u041d\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0442\u0430\u043a\u0443\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044e, \u0432\u0441\u044e \u044d\u0442\u0443 \u043c\u0430\u0433\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432 Spark. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0430\u043c \u044d\u0442\u043e \u0438 \u043d\u0435 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0438 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p><em>P.S.<\/em> \u041a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 jar, \u0432\u044b\u043d\u0435\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0441\u0432\u043e\u0438\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u0445.<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/beeline\/blog\/679876\/\"> https:\/\/habr.com\/ru\/company\/beeline\/blog\/679876\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043b\u044b\u0448\u0430\u0442\u044c, \u0447\u0442\u043e Sqoop \u2014 \u044d\u0442\u043e \u0441\u0435\u0440\u0435\u0431\u0440\u044f\u043d\u0430\u044f \u043f\u0443\u043b\u044f \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430 \u0441 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0411\u0414 \u0432 Hadoop, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0441 Oracle, \u0438 Spark-\u043e\u043c \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b, \u0447\u0442\u043e sqoop \u2014 \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0434 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443, \u0430 Spark \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u041f\u0435\u0442\u0440\u043e\u0432, \u044f \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\u0430 &#171;\u0427\u0430\u043f\u0442\u0435\u0440 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432&#187;, \u0438 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 Spark, \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u044f\u0441\u044c \u043d\u0430 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 Sqoop.<\/p>\n<h2>\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439<\/h2>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446 OracleDB.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443\/\u043f\u0430\u0440\u0442\u0438\u0446\u0438\u044e \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 Hadoop c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 hive.<\/p>\n<details class=\"spoiler\">\n<summary>\u041e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e, \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"sql\">-- DWH.SERVICE_FEATURE definition   CREATE TABLE \"DWH\".\"SERVICE_FEATURE\"    (    \"BAN\" NUMBER(9,0) NOT NULL ENABLE,     \"SUBSCRIBER_NO\" CHAR(11) NOT NULL ENABLE,     \"SOC\" CHAR(9) NOT NULL ENABLE,     \"SOC_SEQ_NO\" NUMBER(9,0) NOT NULL ENABLE,     \"SERVICE_FTR_SEQ_NO\" NUMBER(9,0) NOT NULL ENABLE,     \"SYS_CREATION_DATE\" DATE NOT NULL ENABLE,     \"SYS_UPDATE_DATE\" DATE,     \"OPERATOR_ID\" NUMBER(9,0),     \"APPLICATION_ID\" CHAR(6),     \"DL_SERVICE_CODE\" CHAR(5),     \"DL_UPDATE_STAMP\" NUMBER(4,0),     \"SOC_EFFECTIVE_DATE\" DATE NOT NULL ENABLE,     \"CUSTOMER_ID\" NUMBER(9,0) NOT NULL ENABLE,     \"FEATURE_CODE\" CHAR(6) NOT NULL ENABLE,     \"SERVICE_TYPE\" CHAR(1) NOT NULL ENABLE,     \"SOC_LEVEL_CODE\" CHAR(1) NOT NULL ENABLE,     \"FTR_EFFECTIVE_DATE\" DATE NOT NULL ENABLE,     \"FTR_EFF_RSN_CODE\" CHAR(1),     \"FTR_EXPIRATION_DATE\" DATE,     \"FTR_EXP_RSN_CODE\" CHAR(1),     \"RC_WAIVER_EFF_DATE\" DATE,     \"RC_WAIVER_EXPR_DATE\" DATE,     \"RC_WAIVER_RSN\" CHAR(6),     \"ADDITIONAL_INFO_AMT\" NUMBER(11,2),     \"ADDITIONAL_INFO_TYPE\" CHAR(1),     \"ADDITIONAL_INFO\" VARCHAR2(500),     \"CHARGE_LEVEL_CODE\" CHAR(1),     \"BEN\" NUMBER(5,0),     \"REVENUE_CODE\" CHAR(3),     \"SOC_RELATED\" CHAR(9),     \"BL_PROM_SORT_CODE\" NUMBER(2,0),     \"SERVICE_CLASS\" CHAR(3),     \"RATE_CODE\" CHAR(9),     \"RC_EXPIRATION_DATE\" DATE,     \"RC_ADVPYM_WAIVE_EFF_DT\" DATE,     \"RC_ADVPYM_WAIVE_EXPR_DT\" DATE,     \"RC_ADVPYM_WAIVE_RSN\" CHAR(6),     \"RC_ADVPYM_BILL_SEQ_NO\" NUMBER(3,0),     \"RENEWAL_RATE_CODE\" CHAR(9),     \"SECONDARY_TN\" CHAR(11),     \"CONV_RUN_NO\" NUMBER(3,0),     \"PORT_IN_START_DATE\" DATE,     \"PORT_IN_END_DATE\" DATE    ) PCTFREE 10 PCTUSED 40 INITRANS 7 MAXTRANS 255  NOCOMPRESS  LOGGING   STORAGE(   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\"   PARTITION BY RANGE (\"BAN\")  (PARTITION \"SERVICE_FEATURE_1\"  VALUES LESS THAN (18424929)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_2\"  VALUES LESS THAN (43933393)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_3\"  VALUES LESS THAN (65938220)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_4\"  VALUES LESS THAN (78030882)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_5\"  VALUES LESS THAN (89426107)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_6\"  VALUES LESS THAN (99364535)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_7\"  VALUES LESS THAN (105756681)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_8\"  VALUES LESS THAN (111776927)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_9\"  VALUES LESS THAN (117780453)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_10\"  VALUES LESS THAN (123780786)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_11\"  VALUES LESS THAN (129789421)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_12\"  VALUES LESS THAN (135790871)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_13\"  VALUES LESS THAN (141825258)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_14\"  VALUES LESS THAN (147827477)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_15\"  VALUES LESS THAN (153829228)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_16\"  VALUES LESS THAN (159835744)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_17\"  VALUES LESS THAN (165838495)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_18\"  VALUES LESS THAN (171850405)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_19\"  VALUES LESS THAN (177898201)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS 7 MAXTRANS 255  COMPRESS BASIC NOLOGGING   STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1   BUFFER_POOL KEEP FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)   TABLESPACE \"DATA\" ,  PARTITION \"SERVICE_FEATURE_20\"  VALUES LESS THAN (183970359)   NO INMEMORY SEGMENT CREATION IMMEDIATE   PCTFREE 0 PCTUSED 40 INITRANS<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-336352","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/336352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=336352"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/336352\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=336352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=336352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=336352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}