當前位置:首頁 » 操作系統 » 大數據導入資料庫

大數據導入資料庫

發布時間: 2022-07-28 20:47:51

⑴ 如何快速進行大數據導入,更新舊數據及插入數據操作

如何快速進行大數據導入、更新舊數據及插入數據操作

對於大數據量的導入,同時又要對舊數據進行更新,對資料庫的壓力相當大,而且相當耗損時間,之前測試在一張一百萬數據表中導入10萬的數據,每條記錄都進行查詢判斷,進行了半個小時還沒處理完,等待的時間客戶是無法接受的,何況在面對上千萬的數據中,最後得出一個解決方法。

方法:建一個新表B,跟原表A的結構相同,把每次導入的新數據全部導入B表中,然後用左外連接 把重復數據刪除:delete from A where A.id in(select id from B left join A on B.id = A.id),然後執行insert into A select * form B,最後再刪除B表的數據,測試發現這個不到一分鍾就可以在100萬的數據中完成10W數據的導入。

⑵ 如何進行大數據處理

大數據處理之一:收集


大數據的收集是指運用多個資料庫來接收發自客戶端(Web、App或許感測器方式等)的 數據,而且用戶能夠經過這些資料庫來進行簡略的查詢和處理作業,在大數據的收集進程中,其主要特色和應戰是並發數高,因為同時有可能會有成千上萬的用戶 來進行拜訪和操作


大數據處理之二:導入/預處理


雖然收集端本身會有許多資料庫,但是假如要對這些海量數據進行有效的剖析,還是應該將這 些來自前端的數據導入到一個集中的大型分布式資料庫,或許分布式存儲集群,而且能夠在導入基礎上做一些簡略的清洗和預處理作業。導入與預處理進程的特色和應戰主要是導入的數據量大,每秒鍾的導入量經常會到達百兆,甚至千兆等級。


大數據處理之三:核算/剖析


核算與剖析主要運用分布式資料庫,或許分布式核算集群來對存儲於其內的海量數據進行普通 的剖析和分類匯總等,以滿足大多數常見的剖析需求,在這方面,一些實時性需求會用到EMC的GreenPlum、Oracle的Exadata,以及根據 Mysql的列式存儲Infobright等,而一些批處理,或許根據半結構化數據的需求能夠運用Hadoop。 核算與剖析這部分的主要特色和應戰是剖析觸及的數據量大,其對系統資源,特別是I/O會有極大的佔用。


大數據處理之四:發掘


主要是在現有數據上面進行根據各種演算法的核算,然後起到預測(Predict)的作用,然後實現一些高等級數據剖析的需求。主要運用的工具有Hadoop的Mahout等。該進程的特色和應戰主要是用於發掘的演算法很復雜,並 且核算觸及的數據量和核算量都很大,常用數據發掘演算法都以單線程為主。


關於如何進行大數據處理,青藤小編就和您分享到這里了。如果您對大數據工程有濃厚的興趣,希望這篇文章可以為您提供幫助。如果您還想了解更多關於數據分析師、大數據工程師的技巧及素材等內容,可以點擊本站的其他文章進行學習。

⑶ 如何用php導出導入大資料庫

在使用PhpMyAdmin的時候經常用到數據的導入和導出(Export/Import),但是在導入大數據的時候由於php上傳文件的限制和腳本響應時間的限制,導致phpMyAdmin無法導入大數據。很多時候都是由於文件過大,從本地瀏覽上傳導入,容易中斷失敗,有沒有更好的方法呢?

    方法:

    在phpMyAdmin的目錄下,找到根目錄的config.inc.php文件,

    打開config.inc.php文件,查找$cfg['UploadDir'],這個參數就是設定導入文件存放的目錄,這里把值設定為:ImportSQLFile。

    在phpMyAdmin目錄下,建立以ImportSQLFile命名的文件夾

    把我們需要導入的數據文件,放到ImportSQLFile文件夾下面,非常簡單,

    登入phpMyAdmin,選擇需要導入的數據,點擊導航條上面的「導入」按鈕,

    選中「從網站伺服器上傳文件夾ImportSQLFile/中選擇:」選項,並需要導入的數據文件,

    最後點擊「執行」,即可導入成功。

    注意事項

    如果在config.inc.php文件,沒有找到$cfg['UploadDir'],可以自己在文件中添加上去即可。

⑷ mysql如何導入幾個G的資料庫

首先說明本人只測試了40G的東西。大於40G的還沒有測試。

在上傳之前我們需要將my.ini修改一個參數max_allowed_packet.將參數設置為max_allowed_packet=100000M。1M=1024*1024。以此類推。1G=...。

不經過此設置可能會發生以下問題:MySQLserver has gone away .出現這個問題的原因是因為client端和mysql server端斷開了。一般是操作sql文件時間過長導致的。

設置好之後重啟

這里我經過測試:max_allowed_packet最大隻能設置為1G=10737418248/1024/1024/1024.

查看max_allowed_packet命令為如下:


三、如何檢驗文件是否在上傳或者文件是否已經傳完畢。打開您的mysql管理工具(比如navicat)。按F5看對應的庫記錄和大小或者上次更新時間是否在變化就好了。

四:上傳過程可能比較漫長。上傳完畢

⑸ oracle sqldeveloper大數據量如何導入導出

方法一:利用PL/SQL Developer工具導出:
菜單欄---->Tools---->Export Tables


方法二:利用cmd的操作命令導出,詳情如下:
1:G:Oracleproct10.1.0Client_1NETWORKADMIN目錄下有個tnsname.ora文件,內容如下:

CMSTAR=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)(HOST=172.18.13.200)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=cmstar)
)
)

其中:CMSTAR為資料庫名,HOST為IP地址,所以可以仿效上面的例子手動添加數據錄連接。

2:用cmd進入命令行
輸入:tnsping cmstar
就是測試172.18.13.200是否連接成功

3:導入與導出,如下:
數據導出:
1 將資料庫TEST完全導出,用戶名system 密碼manager
導出到D:chu.dmp中
exp system/manager@TEST file=d:chu.dmp
full=y
2將資料庫中system用戶與sys用戶的表導出
expsystem/manager@TESTfile=d:chu.dmpowner=(system,sys)
3將資料庫中的表table1、table2導出
expsystem/manager@TESTfile=d:chu.dmptables=(table1,table2)
4將資料庫中的表table1中的欄位filed1以"00"打頭的數據導出
expsystem/manager@TESTfile=d:chu.dmptables=(table1)query="wherefiled1like'00%'"

上面是常用的導出,對於壓縮我不太在意,用winzip把dmp文件可以很好的壓縮。
不過在上面命令後面加上compress=y就可以了

數據的導入

1將D:chu.dmp中的數據導入TEST資料庫中。
impsystem/manager@TESTfile=d:chu.dmp
上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行導入。
在後面加上ignore=y就可以了。

2將d:chu.dmp中的表table1導入
impsystem/manager@TESTfile=d:chu.dmptables=(table1)

注意事項:導出dmp數據時需要有導出表的許可權的用戶,否則不能導出。

PL/SQL Developer是Oracle資料庫中用於導入或導出資料庫的主要工具,本文主要介紹了利用PL/SQL
Developer導入和導出資料庫的過程,並對導入或導出時的一些注意事項進行了說明,接下來我們就一一介紹。

導出步驟:

1 tools ->export user object 選擇選項,導出.sql文件。

2 tools ->export tables-> Oracle Export 選擇選項導出.dmp文件。

導入步驟:

註:導入之前最好把以前的表刪除,當然導入另外資料庫除外。
1 tools->import tables->SQL Inserts
導入.sql文件。
2 tools->import talbes->Oracle Import然後再導入dmp文件。

一些說明:

Tools->Export User Objects導出的是建表語句(包括存儲結構)。
Tools->Export
Tables裡麵包含三種導出方式,三種方式都能導出表結構以及數據,如下:
Oracle Export
Sql Insert
pl/sql
developer

第一種是導出為.dmp的文件格式,.dmp文件是二進制的,可以跨平台,還能包含許可權,效率也很不錯,用得最廣

第二種是導出為.sql文件的,可用文本編輯器查看,通用性比較好,但效率不如第一種,適合小數據量導入導出。尤其注意的是表中不能有大欄位(blob,clob,long),如果有,會提示不能導出(提示如下:
table contains one or more LONG columns cannot export in sql format,user Pl/sql
developer format instead)。
第三種是導出為.pde格式的,.pde為Pl/sql
developer自有的文件格式,只能用Pl/sql developer自己導入導出,不能用編輯器查看。

⑹ 如何導入超大mysql資料庫備份文件

在mysql中導入/導出超大的sql文本文件,我們可以使用很多方法實例,如有:客戶端直接命令操作,分塊導入,客戶端用source命令操作等等。
在實際工作中,有時經常地時行mysql資料庫的導入和導入操作,但對於大型sql文件導入時,phpmyadmin是不行的,有太多限制,比如記錄,內存等!

多種方案收集,如下:
方案一:客戶端直接命令操作(此方法是我比較喜歡的)

剛恢復一個電商網站mysql備份數據,此備份文件有300多M,因為phpmyadmin支持上傳有限,文件太大IE停止響應,所以在本地用

代碼如下
復制代碼

mysql -u root -p root jiahuibuydb<
c:/yebihai.sql

但沒導入進去,出來一大堆mysql的參數提示,不認輸入的命令參數,後來寫成下面這個樣子,就是去掉了參數和數據之間的空格

代碼如下
復制代碼

mysql -uroot -proot jiahuibuydb<
c:/yebihai.sql

導入就OK了

導出命令:

a)導出整個庫

mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名

代碼如下
復制代碼

mysqlmp -u root -p student
>d:/yebihai.sql

b)導出一個表

mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名

方案二:分塊導入

代碼如下
復制代碼

<?
//用來快速Mysql的大數據備份
//使用前請首先按照代碼注釋修改要導入的SQL文件名、資料庫主機名、資料庫用戶名、密碼、資料庫名
//同時將資料庫文件和本文本一起ftp導網站目錄,然後以web方式訪問此文件即可

$file_name="sql.sql"; //要導入的SQL文件名

$dbhost="localhost"; //資料庫主機名
$dbuser="user"; //資料庫用戶名

$dbpass="pass"; //資料庫密碼
$dbname="dbname";
//資料庫名

set_time_limit(0); //設置超時時間為0,表示一直執行。當php在safe
mode模式下無效,此時可能會導致導入超時,此時需要分段導入
$fp = @fopen($file_name, "r") or
die("不能打開SQL文件 $file_name");//打開文件
mysql_connect($dbhost, $dbuser,
$dbpass) or die("不能連接資料庫 $dbhost");//連接資料庫
mysql_select_db($dbname)
or die ("不能打開資料庫 $dbname");//打開資料庫
mysql_query('set names utf8');

echo "正在執行導入操作";
while($SQL=GetNextSQL()){
if
(!mysql_query($SQL)){
echo
"執行出錯www.111cn.net:".mysql_error()."
";
echo
"SQL語句為:
".$SQL."
";
};
}
echo
"導入完成";

fclose($fp) or die("Can』t close file $file_name");//關閉文件

mysql_close();

//從文件中逐條取SQL
function GetNextSQL() {

global $fp;
$sql="";
while ($line =
@fgets($fp, 40960)) {
$line =
trim($line);

//以下三句在高版本php中不需要,在部分低版本中也許需要修改
$line =
str_replace("////","//",$line);
$line =
str_replace("/』","』",$line);
$line =
str_replace("//r//n",chr(13).chr(10),$line);
// $line
= stripcslashes($line);
if (strlen($line)>1)
{
if ($line[0]=="-" && $line[1]=="-")
{

continue;
}

}

$sql.=$line.chr(13).chr(10);
if
(strlen($line)>0){
if
($line[strlen($line)-1]==";"){

break;
}

}
}
return $sql;

}
?>

方案三:客戶端用source命令操作

比較好的辦法仍是用mysql的source命令:

一、在客戶端下操作:

1、進行入客戶端 代碼如下
復制代碼

2、mysql>use 資料庫名(如果沒有,先建一個)

3、mysql>set names 'utf8'; (一般看導入的是什麼格式的文件)

4、mysql>source d:/aaa.sql;

即可正常導入,如果有錯,可以看出錯提示

二、PHP文件操作:

建立a.php

裡面有下面內容 代碼如下
復制代碼

mysql_connet('xxxx');

mysql_query("set names 'utf8'");

mysql_query("source d:/aaa.sql'");

原理同上,主要方便了無法使用命令行用戶的操作

方案四:下面教大家一個簡單有效的辦法,適合不會使用命令窗口的非技術人員,可以導入任意大小的mysql資料庫,理論上不論您的資料庫備份文件多大,都可以導入

方法如下:

1.將資料庫備份文件(如backup.sql)上傳至網站根目錄。

2.將以下代碼保存為mysql.php文件,上傳至網站根目錄。

代碼如下
復制代碼

system("mysql -hdbhost -udbuser -ppassword dbname < backup.sql");

print "導入成功";

其中

dbhost 改為您的資料庫伺服器地址(小提示:一般主機默認資料庫伺服器地址是:localhost)

dbuser 改為您的資料庫用戶名

password 改為您的資料庫用戶密碼

dbname 改為您的資料庫名(導入的時候此庫必須先建立好,否則會失敗並且不會進行任何提示)

backup.sql表示通過ftp上傳到網站根目錄下資料庫文件的文件名(該文件是解壓縮後的文件)

3.在瀏覽器裡面訪問mysql.php, 那麼就在瀏覽器裡面輸入/mysql.php,只要瀏覽器一訪問這個mysql.php文件,數據就開始導入,數據導入結束後,就會顯示「導入成功」的字樣。這個時間根據您要導入的數據大小決定,一般時間很短

⑺ mysql資料庫 文件過大 如何導入

1.把已導出文件拷貝到伺服器2.利用root許可權提交命令:#mysql -u 用戶名 -p 密碼 庫名 < 需要導入的.sql文件 在本地導入會比phpmyadmin穩定,快

⑻ php 怎麼解決 大數據量 插入資料庫

ini_set('max_execution_time','0');
$pdo
=
new
PDO("mysql:host=localhost;dbname=test","root","123456");
$sql
=
"insert
into
test(name,age,state,created_time)
values";
for($i=0;
$i<100000;
$i++){
$sql
.="('zhangsan',21,1,'2015-09-17')";
}
$sql
=
substr($sql,0,strlen($sql)-1);
var_mp($sql);
if($pdo
->
exec($sql)){
echo
"插入成功!";
echo
$pdo
->
lastinsertid();
}
試試吧。10萬條1分鍾多,我覺得還行

熱點內容
android使用at命令 發布:2025-01-18 20:54:51 瀏覽:216
phptiny 發布:2025-01-18 20:54:03 瀏覽:987
怎麼給漢字加密 發布:2025-01-18 20:49:44 瀏覽:865
遍歷javamap 發布:2025-01-18 20:39:05 瀏覽:624
我的世界租伺服器哪裡最便宜 發布:2025-01-18 20:38:50 瀏覽:564
dhcp伺服器地址租期時間怎麼調整 發布:2025-01-18 20:28:02 瀏覽:267
加密區的圖片 發布:2025-01-18 20:22:17 瀏覽:474
key文件加密 發布:2025-01-18 20:12:07 瀏覽:736
etl伺服器怎麼用 發布:2025-01-18 20:08:18 瀏覽:281
硫酸鎂演算法 發布:2025-01-18 19:53:00 瀏覽:670