programing

파일에 로컬 데이터 로드가 새 행을 추가하는 대신 mariadb 열 저장소의 이전 데이터를 바꿉니다.

closeapi 2023. 11. 2. 21:43
반응형

파일에 로컬 데이터 로드가 새 행을 추가하는 대신 mariadb 열 저장소의 이전 데이터를 바꿉니다.

mariadb load data local in file을 사용하여 bulk data를 로딩하고 있는데 매번 새로운 데이터를 기존 데이터로 대체하고 있습니다.이전 데이터와 새 데이터를 모두 mariadb 컬럼 스토어 엔진 데이터 웨어하우스에 보관해야 합니다.이에 관한 어떤 도움이라도 대단히 감사하겠습니다.

self.log.info("Bulk inserting rows into MySQL destination...")
with closing(mysql_destination.get_conn()) as conn:
   with closing(conn.cursor()) as cursor:
      cursor.execute(
      "LOAD DATA LOCAL INFILE '%s' INTO "
      "TABLE %s LINES TERMINATED BY '\r\n' (%s)" %
      (tmpfile.name,
      self.mysql_destination_table,
      ", ".join(selected_columns))
      )
   conn.commit()
tmpfile.close()

테이블 구조

CREATE TABLE `daily_sales_msr_fact`  (
  `id` int(11) NULL DEFAULT NULL COMMENT 'autoincrement=1',
  `mtime` timestamp(0) NOT NULL DEFAULT current_timestamp ON UPDATE CURRENT_TIMESTAMP,
  `dpid` int(11) NOT NULL,
  `route_id` int(11) NOT NULL,
  `skid` int(11) NOT NULL,
  `prid` int(11) NOT NULL,
  `group` int(11) NOT NULL,
  `family` int(11) NOT NULL,
  `date` date NOT NULL DEFAULT '1990-01-01',
  `sale` double NOT NULL,
  `dprice` double NOT NULL,
  `rprice` double NOT NULL,
  `dcc_price` double NOT NULL,
  `issue` double NOT NULL,
  `return` double NULL DEFAULT NULL,
  `memos` int(11) NOT NULL,
  `vmemos` int(11) NOT NULL,
  `tlp` double NOT NULL,
  `cnc` double NOT NULL,
  `vp` double NOT NULL,
  `mvp` double NOT NULL,
  `p` double NOT NULL,
  `tcc` double NOT NULL,
  `dcc` double NOT NULL,
  `ecnc` double NOT NULL,
  `gt` double NOT NULL,
  `struc` double NOT NULL,
  `semi_struc` double NOT NULL,
  `streetk` double NOT NULL,
  `mass_hrc` double NOT NULL,
  `pop_hrc` double NOT NULL,
  `prem_hrc` double NOT NULL,
  `kaccounts` double NOT NULL,
  `ogrocery` double NOT NULL,
  `snb_cnc` double NULL DEFAULT NULL,
  `pay_n_go` double NULL DEFAULT NULL,
  `shop_n_browse` double NULL DEFAULT NULL,
  `entertainment` double NULL DEFAULT NULL,
  `outlets` int(11) NOT NULL,
  `apps_version` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  `updated` timestamp(0) NULL DEFAULT NULL,
  `visited` int(11) NULL DEFAULT NULL
) ENGINE = Columnstore CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

언급URL : https://stackoverflow.com/questions/69264363/load-data-local-in-file-is-replacing-old-data-in-mariadb-columnstore-instead-of

반응형