欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql怎么建job,自建mysql

mysql中建表時(shí)如何設(shè)置一個(gè)字段的步長(zhǎng)

CREATE TABLE jobs

陜州網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),陜州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為陜州1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的陜州做網(wǎng)站的公司定做!

(

job_id smallint

IDENTITY(1,1)--在這里設(shè)置步長(zhǎng),第一個(gè)1是種子,就是開始號(hào),第二個(gè)1 就是步長(zhǎng),就是每次增長(zhǎng)增加的數(shù)量。

PRIMARY KEY CLUSTERED,

job_desc varchar(50) NOT NULL

DEFAULT 'New Position - title not formalized yet',

min_lvl tinyint NOT NULL

CHECK (min_lvl = 10),

max_lvl tinyint NOT NULL

CHECK (max_lvl = 250)

)

go

sqoop導(dǎo)入mysql中表必須手動(dòng)創(chuàng)建么

sqoop使用hsql來存儲(chǔ)job信息,開啟metastor service將job信息共享,所有node上的sqoop都可以運(yùn)行同一個(gè)job

一、sqoop的配置文件在sqoop.site.xml中:

1、sqoop.metastore.server.location

本地存儲(chǔ)路徑,默認(rèn)在tmp下,改為其他路徑

2、sqoop.metastore.server.port

metastore service端口號(hào)

3、sqoop.metastore.client.autoconnect.url

sqoop自動(dòng)連接的metastore地址,默認(rèn)是本地的metastore地址

4、sqoop.metastore.client.enable.autoconnect

開啟自動(dòng)連接。sqoop默認(rèn)連接本地metastore。注釋這個(gè)配置會(huì)開啟自動(dòng)連接。

二、開啟metastore service

sqoop下,nohup bin/sqoop metastore

三、創(chuàng)建job

sqoop支持兩種增量導(dǎo)入模式,

一種是 append,即通過指定一個(gè)遞增的列,比如:

--incremental append --check-column num_iid --last-value 0

varchar類型的check字段也可以通過這種方式增量導(dǎo)入(id為varchar類型的遞增數(shù)字):

--incremental append --check-column id --last-value 8

另種是可以根據(jù)時(shí)間戳,比如:

--incremental lastmodified --check-column created --last-value '2012-02-01 11:0:00'

就是只導(dǎo)入created 比'2012-02-01 11:0:00'更大的數(shù)據(jù)。

bin/sqoop job --meta-connect jdbc:hsqldb:hsql://10.106.1.234:16000/sqoop --create job_zyztest13 -- import --connect jdbc:oracle:thin:@10.106.1.236:1521:orcl --username SQOOP --password sqoop --table LXC_TEST_HBASE_TO_ORACLE --columns NAME,SEX,age,CSRQ -m 1 --hbase-table SQOOP_IMPORT_TEST3 --column-family info --hbase-row-key NAME --split-by NAME --incremental lastmodified --check-column CSRQ --last-value '2012-02-01 11:0:00' --verbose

nohup /opt/hadoopcluster/sqoop-1.4.2.bin__hadoop-2.0.0-alpha/bin/sqoop job --exec job_zyztest13 job_zyztest13.out 21

此時(shí),在10.106.1.234上創(chuàng)建了job_zyztest13這個(gè)job,通過bin/sqoop job --meta-connect jdbc:hsqldb:hsql://10.106.1.234:16000/sqoop --list可以查看所有job

四、定時(shí)執(zhí)行

使用linux定時(shí)器:crontab -e

編輯定時(shí)器,添加*/4 * * * * /opt/hadoopcluster/sqoop-1.4.2.bin__hadoop-2.0.0-alpha/bin/sqoop job --meta-connect jdbc:hsqldb:hsql://10.106.1.234:16000/sqoop --exec job_zyztest13 job_zyztest13.out 21 任務(wù)將會(huì)每四分鐘執(zhí)行一次

Mysql建立索引經(jīng)驗(yàn)

在實(shí)際開發(fā)中使用數(shù)據(jù)庫時(shí),難免會(huì)遇到一些大表數(shù)據(jù),對(duì)這些數(shù)據(jù)進(jìn)行查詢時(shí),有時(shí)候SQL會(huì)查詢得特別慢,這時(shí)候,有經(jīng)驗(yàn)的老師傅會(huì)告訴你,你看一下哪幾個(gè)字段查的多,加一個(gè)索引就好了。

那么,怎么合理地建立索引呢?這里分享一下我的一些經(jīng)驗(yàn),如有不妥之處,歡迎批評(píng)指正。

1、不要盲目建立索引 , 先分析再創(chuàng)建

索引雖然能大幅度提升我們的查詢性能,但也要知道,在你進(jìn)行增刪改時(shí),索引樹也要同樣地進(jìn)行維護(hù)。所以,索引不是越多越好,而是按需建立。最好是在一整塊模塊開發(fā)完成后,分析一下,去針對(duì)大多數(shù)的查詢,建立聯(lián)合索引。

2、使用聯(lián)合索引盡量覆蓋多的條件

這是說在一個(gè)慢sql里假如有五個(gè)where ,一個(gè) order by ,那么我們的聯(lián)合索引盡量覆蓋到這五個(gè)查詢條件,如果有必要,order by 也覆蓋上 。

3、小基數(shù)字段不需要索引

這個(gè)意思是,如果一張表里某個(gè)字段的值只有那么幾個(gè),那么你針對(duì)這個(gè)字段建立的索引其實(shí)沒什么意義,比如說,一個(gè)性別字段就兩種結(jié)果,你建了索引,排序也沒什么意思(也就是索引里把男女給分開了)

所以說,索引盡量選擇基數(shù)大的數(shù)據(jù)去建立,能最大化地利用索引

4、長(zhǎng)字符串可以使用前綴索引

我們建立索引的字段盡量選擇字段類型較小的,比如一個(gè)varchar(20)和varchar(256)的,我們?cè)?0的上面建立的索引和在256上就有明顯的差距(字符串那么長(zhǎng)排序也不好排呀,唉)。

當(dāng)然,如果一定是要對(duì)varchar(256)建立索引,我們可以選擇里面的前20個(gè)字符放在索引樹里(這里的20不絕對(duì),選擇能盡量分辨數(shù)據(jù)的最小字符字段設(shè)計(jì)),類似這樣KEY index(name(20),age,job) ,索引只會(huì)對(duì)name的前20個(gè)字符進(jìn)行搜索,但前綴索引無法適用于order by 和 group by。

5、對(duì)排序字段設(shè)計(jì)索引的優(yōu)先級(jí)低

如果一個(gè)SQL里我們出現(xiàn)了范圍查找,后邊又跟著一個(gè)排序字段,那么我們優(yōu)先給范圍查找的字段設(shè)置索引,而不是優(yōu)先排序。

6、如果出現(xiàn)慢SQL,可以設(shè)計(jì)一個(gè)只針對(duì)該條SQL的聯(lián)合索引。

不過慢SQL的優(yōu)化,需要一步步去進(jìn)行分析,可以先用explain查看SQL語句的分析結(jié)果,再針對(duì)結(jié)果去做相應(yīng)的改進(jìn)。explain的東西我們下次再講。

PS:在 select 語句之前增加 explain 關(guān)鍵字,MySQL 會(huì)在查詢上設(shè)置一個(gè)標(biāo)記,執(zhí)行查詢會(huì)返回執(zhí)行計(jì)劃的信息,而不是 執(zhí)行這條SQL。

調(diào)度工具(ETL+任務(wù)流)

kettle是一個(gè)ETL工具,ETL(Extract-Transform-Load的縮寫,即數(shù)據(jù)抽取、轉(zhuǎn)換、裝載的過程)。

kettle中文名稱叫水壺,該項(xiàng)目的主程序員MATT 希望把各種數(shù)據(jù)放到一個(gè)壺里,然后以一種指定的格式流出。

所以他的重心是用于數(shù)據(jù)

oozie是一個(gè)工作流,Oozie工作流是放置在控制依賴DAG(有向無環(huán)圖 Direct Acyclic Graph)中的一組動(dòng)作(例如,Hadoop的Map/Reduce作業(yè)、Pig作業(yè)等),其中指定了動(dòng)作執(zhí)行的順序。

oozie工作流中是有數(shù)據(jù)流動(dòng)的,但是重心是在于工作流的定義。

二者雖然都有相關(guān)功能及數(shù)據(jù)的流動(dòng),但是其實(shí)用途是不一樣的。

查看幫助

列舉出所有l(wèi)inux上的數(shù)據(jù)庫

列舉出所有Window上的數(shù)據(jù)庫

查看數(shù)據(jù)庫下的所有表

(1)確定mysql服務(wù)啟動(dòng)正常

查詢控制端口和查詢進(jìn)程來確定,一下兩種辦法可以確認(rèn)mysql是否在啟動(dòng)狀態(tài)

辦法1:查詢端口

MySQL監(jiān)控的TCP的3306端口,如果顯示3306,證明MySQL服務(wù)在運(yùn)行中

辦法二:查詢進(jìn)程

可以看見mysql的進(jìn)程

沒有指定數(shù)據(jù)導(dǎo)入到哪個(gè)目錄,默認(rèn)是/user/root/表名

原因:

如果表中有主鍵,m的值可以設(shè)置大于1的值;如果沒有主鍵只能將m值設(shè)置成為1;或者要將m值大于1,需要使用--split-by指定一個(gè)字段

設(shè)置了-m 1 說明只有一個(gè)maptask執(zhí)行數(shù)據(jù)導(dǎo)入,默認(rèn)是4個(gè)maptask執(zhí)行導(dǎo)入操作,但是必須指定一個(gè)列來作為劃分依據(jù)

導(dǎo)入數(shù)據(jù)到指定目錄

在導(dǎo)入表數(shù)據(jù)到HDFS使用Sqoop導(dǎo)入工具,我們可以指定目標(biāo)目錄。使用參數(shù) --target-dir來指定導(dǎo)出目的地,使用參數(shù)—delete-target-dir來判斷導(dǎo)出目錄是否存在,如果存在就刪掉

查詢導(dǎo)入

提示:must contain '$CONDITIONS' in WHERE clause。

where id =1 匹配條件

$CONDITIONS:傳遞作用。

如果 query 后使用的是雙引號(hào),則 $CONDITIONS前必須加轉(zhuǎn)義符,防止 shell 識(shí)別為自己的變量。

--query時(shí)不能使用--table一起使用

需要指定--target-dir路徑

導(dǎo)入到hdfs指定目錄并指定要求

數(shù)據(jù)導(dǎo)出儲(chǔ)存方式(數(shù)據(jù)存儲(chǔ)文件格式---( textfil parquet)--as-textfileImports data as plain text (default)--as-parquetfile Imports data to Parquet Files)

導(dǎo)入表數(shù)據(jù)子集到HDFS

sqoop導(dǎo)入blob數(shù)據(jù)到hive

對(duì)于CLOB,如xml文本,sqoop可以遷移到Hive表,對(duì)應(yīng)字段存儲(chǔ)為字符類型。

對(duì)于BLOB,如jpg圖片,sqoop無法直接遷移到Hive表,只能先遷移到HDFS路徑,然后再使用Hive命令加載到Hive表。遷移到HDFS后BLOB字段存儲(chǔ)為16進(jìn)制形式。

2.1.3導(dǎo)入關(guān)系表到Hive

第一步:導(dǎo)入需要的jar包

將我們mysql表當(dāng)中的數(shù)據(jù)直接導(dǎo)入到hive表中的話,我們需要將hive的一個(gè)叫做hive-exec-1.1.0-cdh5.14.0.jar的jar包拷貝到sqoop的lib目錄下

第二步:開始導(dǎo)入

導(dǎo)入關(guān)系表到hive并自動(dòng)創(chuàng)建hive表

們也可以通過命令來將我們的mysql的表直接導(dǎo)入到hive表當(dāng)中去

通過這個(gè)命令,我們可以直接將我們mysql表當(dāng)中的數(shù)據(jù)以及表結(jié)構(gòu)一起倒入到hive當(dāng)中去

--incremental 增量模式。

append id 是獲取一個(gè)某一列的某個(gè)值。

lastmodified “2016-12-15 15:47:35” 獲取某個(gè)時(shí)間后修改的所有數(shù)據(jù)

-append 附加模式

-merge-key id 合并模式

--check-column 用來指定一些列,可以去指定多個(gè)列;通常的是指定主鍵id

--last -value 從哪個(gè)值開始增量

==注意:增量導(dǎo)入的時(shí)候,一定不能加參數(shù)--delete-target-dir 否則會(huì)報(bào)錯(cuò)==

第一種增量導(dǎo)入方式(不常用)

1.Append方式

使用場(chǎng)景:有個(gè)訂單表,里面每個(gè)訂單有一個(gè)唯一標(biāo)識(shí)的自增列id,在關(guān)系型數(shù)據(jù)庫中以主鍵的形式存在。之前已經(jīng)將id在0-1000之間的編號(hào)的訂單導(dǎo)入到HDFS 中;如果在產(chǎn)生新的訂單,此時(shí)我們只需指定incremental參數(shù)為append,--last-value參數(shù)為1000即可,表示只從id大于1000后開始導(dǎo)入。

(1)創(chuàng)建一個(gè)MySQL表

(2)創(chuàng)建一個(gè)hive表(表結(jié)構(gòu)與mysql一致)

注意:

append 模式不支持寫入到hive表中

2.lastModify方式

此方式要求原有表有time字段,它能指定一個(gè)時(shí)間戳,讓sqoop把該時(shí)間戳之后的數(shù)據(jù)導(dǎo)入到HDFS;因?yàn)楹罄m(xù)訂單可能狀體會(huì)變化,變化后time字段時(shí)間戳也會(huì)變化,此時(shí)sqoop依然會(huì)將相同狀態(tài)更改后的訂單導(dǎo)入HDFS,當(dāng)然我們可以只當(dāng)merge-key參數(shù)為order-id,表示將后續(xù)新的記錄和原有記錄合并。

# 將時(shí)間列大于等于閾值的數(shù)據(jù)增量導(dǎo)入HDFS

使用 lastmodified 方式導(dǎo)入數(shù)據(jù),要指定增量數(shù)據(jù)是要 --append(追加)還是要 --merge-key(合并)last-value 指定的值是會(huì)包含于增量導(dǎo)入的數(shù)據(jù)中。

第二種增量導(dǎo)入方式(推薦)

==通過where條件選取數(shù)據(jù)更加精準(zhǔn)==

2.1.5從RDBMS到HBase

會(huì)報(bào)錯(cuò)

原因:sqoop1.4.6 只支持 HBase1.0.1 之前的版本的自動(dòng)創(chuàng)建 HBase 表的功能。

解決方案:手動(dòng)創(chuàng)建 HBase 表

導(dǎo)出前,目標(biāo)表必須存在與目標(biāo)數(shù)據(jù)庫中

默認(rèn)操作是將文件中的數(shù)據(jù)使用insert語句插入到表中

數(shù)據(jù)是在HDFS當(dāng)中的如下目錄/sqoop/emp,數(shù)據(jù)內(nèi)容如下

第一步:創(chuàng)建MySQL表

第二步:執(zhí)行導(dǎo)出命令

通過export來實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)出,將hdfs的數(shù)據(jù)導(dǎo)出到mysql當(dāng)中去

全量導(dǎo)出

增量導(dǎo)出

更新導(dǎo)出

總結(jié):

參數(shù)介紹

--update-key 后面也可以接多個(gè)關(guān)鍵字列名,可以使用逗號(hào)隔開,Sqoop將會(huì)匹配多個(gè)關(guān)鍵字后再執(zhí)行更新操作。

--export-dir 參數(shù)配合--table或者--call參數(shù)使用,指定了HDFS上需要將數(shù)據(jù)導(dǎo)入到MySQL中的文件集目錄。

--update-mode updateonly和allowinsert。 默認(rèn)模式為updateonly,如果指定--update-mode模式為allowinsert,可以將目標(biāo)數(shù)據(jù)庫中原來不存在的數(shù)據(jù)也導(dǎo)入到數(shù)據(jù)庫表中。即將存在的數(shù)據(jù)更新,不存在數(shù)據(jù)插入。

組合測(cè)試及說明

1、當(dāng)指定update-key,且關(guān)系型數(shù)據(jù)庫表存在主鍵時(shí):

A、allowinsert模式時(shí),為更新目標(biāo)數(shù)據(jù)庫表存的內(nèi)容,并且原來不存在的數(shù)據(jù)也導(dǎo)入到數(shù)據(jù)庫表;

B、updateonly模式時(shí),為更新目標(biāo)數(shù)據(jù)庫表存的內(nèi)容,并且原來不存在的數(shù)據(jù)也不導(dǎo)入到數(shù)據(jù)庫表;

2、當(dāng)指定update-key,且關(guān)系型數(shù)據(jù)庫表不存在主鍵時(shí):

A、allowinsert模式時(shí),為全部數(shù)據(jù)追加導(dǎo)入到數(shù)據(jù)庫表;

B、updateonly模式時(shí),為更新目標(biāo)數(shù)據(jù)庫表存的內(nèi)容,并且原來不存在的數(shù)據(jù)也不導(dǎo)入到數(shù)據(jù)庫表;

3、當(dāng)不指定update-key,且關(guān)系型數(shù)據(jù)庫表存在主鍵時(shí):

A、allowinsert模式時(shí),報(bào)主鍵沖突,數(shù)據(jù)無變化;

B、updateonly模式時(shí),報(bào)主鍵沖突,數(shù)據(jù)無變化;

4、當(dāng)不指定update-key,且關(guān)系型數(shù)據(jù)庫表不存在主鍵時(shí):

A、allowinsert模式時(shí),為全部數(shù)據(jù)追加導(dǎo)入到數(shù)據(jù)庫表;

B、updateonly模式時(shí),為全部數(shù)據(jù)追加導(dǎo)入到數(shù)據(jù)庫表;

實(shí)際案例:

(1)mysql批量導(dǎo)入hive

使用shell腳本:

筆者目前用sqoop把mysql數(shù)據(jù)導(dǎo)入到Hive中,最后實(shí)現(xiàn)命令行導(dǎo)入,sqoop版本1.4.7,實(shí)現(xiàn)如下

最后需要把這個(gè)導(dǎo)入搞成job,每天定時(shí)去跑,實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)化增量導(dǎo)入,sqoop支持job的管理,可以把導(dǎo)入創(chuàng)建成job重復(fù)去跑,并且它會(huì)在metastore中記錄增值,每次執(zhí)行增量導(dǎo)入之前去查詢

創(chuàng)建job命令如下

創(chuàng)建完job就可以去執(zhí)行它了

sqoop job --exec users

可以把該指令設(shè)為L(zhǎng)inux定時(shí)任務(wù),或者用Azkaban定時(shí)去執(zhí)行它

hive導(dǎo)出到MySQL時(shí),date類型數(shù)據(jù)發(fā)生變化?

問題原因:時(shí)區(qū)設(shè)置問題,date -R查看服務(wù)器時(shí)間,show VARIABLES LIKE "%time_zone"查看Mysql時(shí)間,system并不表示中國(guó)的標(biāo)準(zhǔn)時(shí)間,要將時(shí)間設(shè)置為東八區(qū)

(1):對(duì)市面上最流行的兩種調(diào)度器,給出以下詳細(xì)對(duì)比,以供技術(shù)選型參考。總體來說,ooize相比azkaban是一個(gè)重量級(jí)的任務(wù)調(diào)度系統(tǒng),功能全面,但配置使用也更復(fù)雜。如果可以不在意某些功能的缺失,輕量級(jí)調(diào)度器azkaban是很不錯(cuò)的候選對(duì)象。

(2):功能:

兩者均可以調(diào)度mapreduce,pig,java,腳本工作流任務(wù);

兩者均可以定時(shí)執(zhí)行工作流任務(wù);

(3):工作流定義:

Azkaban使用Properties文件定義工作流;

Oozie使用XML文件定義工作流;

(4):工作流傳參:

Azkaban支持直接傳參,例如${input};

Oozie支持參數(shù)和EL表達(dá)式,例如${fs:dirSize(myInputDir)};

(5):定時(shí)執(zhí)行:

Azkaban的定時(shí)執(zhí)行任務(wù)是基于時(shí)間的;

Oozie的定時(shí)執(zhí)行任務(wù)基于時(shí)間和輸入數(shù)據(jù);

(6):資源管理:

Azkaban有較嚴(yán)格的權(quán)限控制,如用戶對(duì)工作流進(jìn)行讀/寫/執(zhí)行等操作;

Oozie暫無嚴(yán)格的權(quán)限控制;

(7):工作流執(zhí)行:

Azkaban有兩種運(yùn)行模式,分別是solo server mode(executor server和web server部署在同一臺(tái)節(jié)點(diǎn))和multi server mode(executor server和web server可以部署在不同節(jié)點(diǎn));

Oozie作為工作流服務(wù)器運(yùn)行,支持多用戶和多工作流;

(8):工作流管理:

Azkaban支持瀏覽器以及ajax方式操作工作流;

Oozie支持命令行、HTTP REST、Java API、瀏覽器操作工作流;

瀏覽器頁面訪問

使用Oozie時(shí)通常整合hue,用戶數(shù)據(jù)倉庫調(diào)度

就是剛才選擇的腳本

腳本里需要的參數(shù),盡量設(shè)置為動(dòng)態(tài)自動(dòng)獲取,如 ${date}

第一步的參數(shù)是所有文件和當(dāng)天日期,后面的只需要日期,最后一步是導(dǎo)出所有結(jié)果,相應(yīng)填入

添加文件和設(shè)置相應(yīng)參數(shù)

運(yùn)行后會(huì)有狀態(tài)提示頁面,可以看到任務(wù)進(jìn)度

點(diǎn)擊調(diào)度任務(wù)的頁面情況

修改定時(shí)任務(wù)名和描述

添加需要定時(shí)調(diào)度的任務(wù)

sm-workflow的參數(shù)都是寫死的,沒有設(shè)置動(dòng)態(tài),這里的下拉列表就不會(huì)有可選項(xiàng)。

設(shè)置參數(shù)

將sm-workflow的日期修改為 ${do_date},保存

進(jìn)入定時(shí)計(jì)劃sm-dw中,會(huì)看到有參數(shù) do_date

填入相應(yīng)參數(shù),前一天日期

Oozie常用系統(tǒng)常量

當(dāng)然,也可以通過這樣將參數(shù)傳入workflow任務(wù)中,代碼或者shell中需要的參數(shù)。

如,修改sm-workflow 中的 sqoop_import.sh,添加一個(gè)參數(shù) ${num}。

編輯文件(需要登陸Hue的用戶有對(duì)HDFS操作的權(quán)限),修改shell中的一個(gè)值為參數(shù),保存。

在workflow中,編輯添加參數(shù) ${num} ,或者num=${num} 保存。

進(jìn)入schedule中,可以看到添加的參數(shù),編輯輸入相應(yīng)參數(shù)即可。

Bundle統(tǒng)一管理所有定時(shí)調(diào)度,階段劃分:Bundle Schedule workflow

當(dāng)前標(biāo)題:mysql怎么建job,自建mysql
標(biāo)題路徑:http://chinadenli.net/article38/hecopp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)外貿(mào)建站用戶體驗(yàn)關(guān)鍵詞優(yōu)化移動(dòng)網(wǎng)站建設(shè)Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化